Rewrite the following JAVA program so that is uses try-with-resources to elimina
ID: 3735844 • Letter: R
Question
Rewrite the following JAVA program so that is uses try-with-resources to eliminate the calls to close(). Use only one try block.
import java.io.*;
class NoTryWithResources {
public static void main(String[] args) {
FileInputStream fin = null;
FileOutputStream fout = null;
//First make sure both files have specified.
if(args.length != 2) {
System.out.println("Usage: NoTryWithResources From To");
return;
}
try {
fin = new FileInputStream(args[0]);
}
catch (IOException exc) {
System.out.println("IOException: program halted.");
}
try {
fout = new FileOutputStream(args[1]);
}
catch (IOException exc) {
System.out.println("IOException: program halted.");
}
try {
if(fin != null && fout != null) {
int c = fin.read();
fout.write(c);
}
}
catch (IOException exc) {
System.out.println("IOException: program halted.");
}
finally {
try {
if(fin != null)
fin.close();
}
catch (IOException exc) {
System.out.println("IOException: program halted.");
}
try {
if(fout != null)
fout.close();
}
catch (IOException exc) {
System.out.println("IOException: program halted.");
}
}
}
}
Explanation / Answer
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class TryWithResources { public static void main(String[] args) { if(args.length != 2) { System.out.println("Usage: NoTryWithResources From To"); return; } try(FileInputStream fin = new FileInputStream(args[0]); FileOutputStream fout = new FileOutputStream(args[1])) { int c = fin.read(); fout.write(c); } catch (IOException e) { System.out.println("IOException: program halted."); } } }
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.