About Question enthuware.ocpjp.v8.2.1551 :

Help and support on OCA OCP Java Programmer Certification Questions
1Z0-808, 1Z0-809, 1Z0-815, 1Z0-816, 1Z0-817

Moderator: admin

Post Reply
frakcio
Posts: 4
Joined: Sat Dec 14, 2013 4:15 pm
Contact:

About Question enthuware.ocpjp.v8.2.1551 :

Post by frakcio »

I think that the answer 'e' is incorrect. new OpenOption[]{StandardOpenOption.READ, StandardOpenOption.SYNC}

1. In explanation you said that it is incorrect +
2. I've tried to implement it and got exception

Code: Select all

        OpenOption[] openOptions = new OpenOption[]{StandardOpenOption.READ, StandardOpenOption.SYNC};
        try {
            Files.newBufferedWriter(Paths.get("C:/test.txt"), openOptions);
        } catch (IOException e) {
        }
Exception in thread "main" java.lang.IllegalArgumentException: READ not allowed

admin
Site Admin
Posts: 10384
Joined: Fri Sep 10, 2010 9:26 pm
Contact:

Re: About Question enthuware.ocpjp.v8.2.1551 :

Post by admin »

Yes, that is a problem with this topic. Some combinations work on some platforms but not on others. The JavaDoc API description doesn't specify clearly the combinations that should work.

frakcio
Posts: 4
Joined: Sat Dec 14, 2013 4:15 pm
Contact:

Re: About Question enthuware.ocpjp.v8.2.1551 :

Post by frakcio »

I agree, but something should be corrected. Answer or explanation. They are not fit together

admin
Site Admin
Posts: 10384
Joined: Fri Sep 10, 2010 9:26 pm
Contact:

Re: About Question enthuware.ocpjp.v8.2.1551 :

Post by admin »

Can you post the exact code that you tried and on which platform?

frakcio
Posts: 4
Joined: Sat Dec 14, 2013 4:15 pm
Contact:

Re: About Question enthuware.ocpjp.v8.2.1551 :

Post by frakcio »

Sure. Code:

Code: Select all

public class App {
    public static void main(String[] args) {
        OpenOption[] openOptions = new OpenOption[]{StandardOpenOption.READ, StandardOpenOption.SYNC};
        try {
            Files.newBufferedWriter(Paths.get("C:/test.txt"), openOptions);
        } catch (IOException e) {
        }
    }
}
Output:

Code: Select all

Connected to the target VM, address: '127.0.0.1:63393', transport: 'socket'
Disconnected from the target VM, address: '127.0.0.1:63393', transport: 'socket'
Exception in thread "main" java.lang.IllegalArgumentException: READ not allowed
	at java.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:429)
	at java.nio.file.Files.newOutputStream(Files.java:216)
	at java.nio.file.Files.newBufferedWriter(Files.java:2860)
	at java.nio.file.Files.newBufferedWriter(Files.java:2896)
	at pl.mal.App.main(App.java:34)

Process finished with exit code 1
jdk1.8.0_151
win10

admin
Site Admin
Posts: 10384
Joined: Fri Sep 10, 2010 9:26 pm
Contact:

Re: About Question enthuware.ocpjp.v8.2.1551 :

Post by admin »

thanks! I have updated the answer.

Paul.

__JJ__
Posts: 125
Joined: Thu Jul 05, 2018 6:44 pm
Contact:

Re: About Question enthuware.ocpjp.v8.2.1551 :

Post by __JJ__ »

Hi
TRUNCATE_EXISTING and APPEND are indeed not allowed, as they make zero sense:

Code: Select all

      Path p = Paths.get("c:\\tmp\\test1\\test1.txt");
        BufferedWriter br = Files.newBufferedWriter(p, Charset.forName("UTF-8")
        ,new OpenOption[] {StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.APPEND});

Exception in thread "main" java.lang.IllegalArgumentException: APPEND + TRUNCATE_EXISTING not allowed
        at sun.nio.fs.WindowsChannelFactory.newFileChannel(WindowsChannelFactory.java:160)
        at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:225)
        at java.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:434)
        at java.nio.file.Files.newOutputStream(Files.java:216)
        at java.nio.file.Files.newBufferedWriter(Files.java:2860)
        at ocp8.practice2.T31.f3(T31.java:104)
        at ocp8.practice2.T31.main(T31.java:74)

Post Reply

Who is online

Users browsing this forum: No registered users and 12 guests