Java SE 8 Programmer II — Question 54
Given that /green.txt and /colors/yellow.txt are accessible, and the code fragment:
Path source = Paths.get("/green.txt);
Path target = Paths.get("/colors/yellow.txt);
Files.move(source, target, StandardCopyOption.ATOMIC_MOVE);
Files.delete(source);
Which statement is true?
Answer options
- A. The green.txt file content is replaced by the yellow.txt file content and the yellow.txt file is deleted.
- B. The yellow.txt file content is replaced by the green.txt file content and an exception is thrown.
- C. The file green.txt is moved to the /colors directory.
- D. A FileAlreadyExistsException is thrown at runtime.
Correct answer: B
Explanation
The correct answer is B because the Files.move method with StandardCopyOption.ATOMIC_MOVE will attempt to overwrite yellow.txt with green.txt's content, which results in an exception since yellow.txt already exists. Options A and C are incorrect as they misinterpret the file operations, and D is incorrect because the exception does not relate to the file already existing in the context of an atomic move.