代码示例:
package Day_02;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
//文件的异常抛出处理的三种办法
public class test_01 {
public static void main(String[] args) {
method_01();
method_02();
method_03();
}
//try-catch-finally
public static void method_01() {
FileWriter fw = null;
FileReader fr = null;
try {
fw = new FileWriter("C:\\Users\\DELL\\Desktop\\test");
fr = new FileReader("C:\\Users\\DELL\\Desktop\\DEV");
char[] chars = new char[1024];
while ((fr.read(chars)) != -1) {
fw.write(chars);
}
} catch (IOException i) {
i.printStackTrace();
} finally {
if (fw != null) {
try {
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fr != null) {
try {
fw.close();
} catch (IOException i) {
i.printStackTrace();
}
}
}
}
// JDK7的改进方案:直接将流对象放入try后新加的括号里面
public static void method_02() {
try (FileWriter fw = new FileWriter("C:\\Users\\DELL\\Desktop\\test");
FileReader fr = new FileReader("C:\\Users\\DELL\\Desktop\\DEV");) {
char[] chars = new char[1024];
while ((fr.read(chars)) != -1) {
fw.write(chars);
}
} catch (IOException i) {
i.printStackTrace();
}
// 这个会最终释放资源,所有不用自己再写close()函数了
}
// JDK9以后的操作,这个不用写finall了,但是还得加上throws IOException
public static void method_03()throws IOException{
FileWriter fw = new FileWriter("C:\\Users\\DELL\\Desktop\\test");
FileReader fr = new FileReader("C:\\Users\\DELL\\Desktop\\DEV");
try (fr; fw) {
char[] chars = new char[1024];
while ((fr.read(chars)) != -1) {
fw.write(chars);
}
}catch(IOException i){
i.printStackTrace();
}
}
}