Which two try statements, when inserted at line ***, enable the code to successfully move the file
info.txt to the destination directory, even if a file by the same name already exists in the destination
directory?
A.
try (FileChannel in = new FileInputStream (source). getChannel(); FileChannel out = new
FileOutputStream
(dest).getChannel()) { in.transferTo(0, in.size(), out);
B.
try ( Files.copy(Paths.get(source),Paths.get(dest));
Files.delete (Paths.get(source));
C.
try ( Files.copy(Paths.get(source),
Paths.get(dest),StandardCopyOption.REPLACE_EXISTING); Files.delete
(Paths.get(source));
D.
try (Files.move(Paths.get(source),Paths.get(dest));
E.
try(BufferedReader br = Files.newBufferedReader(Paths.get(source), Charset.forName(“UTF-8”));
BufferedWriter bw = Files.newBufferedWriter(Paths.get(dest), Charset.forName(“UTF-8”)); String
record =
“”;
while ((record = br.readLine()) ! = null) {
bw.write(record);
bw.newLine();
}
Files.delete(Paths.get(source));
Explanation:
A: copies only, don’t move operation
B,C,D (no try-with-resource !) syntax change to: try { …
B: throws FileAlreadyExistsException
C: correct if syntax change to : StandardCopyOption.REPLACE_EXISTING (before
REPLACE_Existing)
D: throws FileAlreadyExistsException
E: works properly if the sourcefile has the correct format, utf-8 here (else throws
MalformedInputException)
AND syntax is corrected to:
try ( BufferedReader br = Files.newBufferedReader(Paths.get(source), Charset.forName(“UTF-8));
BufferedWriter bw = Files.newBufferedWriter(Paths.get(dest), Charset.forName(“UTF-8)); ){
String record = “”;
…..
C,E
WRONG. C doesnt compile coz its doesnt implement autocloaseable. correct is AE
Answerd is A if you put in.transferTo(0, in.size(), out);