复制文件的异常处理操作
try—catch—finally
try{
可能出现异常的代码;
}catch(异常类名 变量名){
异常代码处理;
}finally{
执行所有清除操作;
}
JDK7改进方案
try(定义流对象){
可能出现异常的代码;
}catch(异常类名 变量名){
异常代码处理;
}
//自动释放资源
JDK9改进方案
定义输入流对象;
定义输出流对象;
try(输入流对象;输出流对象){
可能出现异常的代码;
}catch(异常类名 变量名){
异常代码处理;
}
//自动释放资源
代码案例如下:
package Java25;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class demo {
public static void main(String[] args) {
}
// //抛出处理
// public static void copyFile() throws IOException {
// FileReader fr = new FileReader("fr.txt");
// FileWriter fw = new FileWriter("fw.txt");
//
// char[] chs = new char[1024];
// int len;
// while ((len=fr.read())!=-1){
// fw.write(chs,0,len);
// }
// fw.close();
// fr.close();
// }
//JDK9的改进方案,电脑上的软件是JDK8的所以无法使用
public static void copyFile3() throws IOException{
FileReader fr = new FileReader("fr.txt");
FileWriter fw = new FileWriter("fw.txt")
try (fr;fw){
char[] chs = new char[1024];
int len;
while ((len = fr.read()) != -1) {
fw.write(chs, 0, len);
}
}catch (IOException e){
e.printStackTrace();
}
}
//JDK7的改进方案
public static void copyFile2() {
try (FileReader fr = new FileReader("fr.txt");
FileWriter fw = new FileWriter("fw.txt");){
char[] chs = new char[1024];
int len;
while ((len = fr.read()) != -1) {
fw.write(chs, 0, len);
}
}catch (IOException e){
e.printStackTrace();
}
}
//try catch finally三步骤
public static void copyFile1() {
FileReader fr=null;
FileWriter fw=null;
try {
fr = new FileReader("fr.txt");
fw = new FileWriter("fw.txt");
char[] chs = new char[1024];
int len;
while ((len = fr.read()) != -1) {
fw.write(chs, 0, len);
}
}catch (IOException e){
e.printStackTrace();
}finally {
if(fw!=null) {
try {
fw.close();
}catch (IOException e) {
e.printStackTrace();
}
}
if(fr!=null){
try {
fr.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
}
}