Rewrite the following program so that is uses try-with-resources to eliminate th
ID: 3735832 • Letter: R
Question
Rewrite the following 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
Here is code:
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]);
System.out.println("IOException: program halted.");
fout = new FileOutputStream(args[1]);
if (fin != null && fout != null) {
int c = fin.read();
fout.write(c);
}
if (fin != null) {
fin.close();
}
if (fout != null) {
fout.close();
}
} catch (IOException exc) {
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.