1. 先写throws异常的版本
import java.io.*;
public class FileReaderFileWriterCopy {
public static void main(String[] args) throws IOException {
//1. File实例化
File copied = new File("Hello\\src\\io\\hello1.txt");
File generate = new File("Hello\\src\\io\\hello2.txt");
//2. 流实例化
FileReader fr = new FileReader(copied);
FileWriter fw = new FileWriter(generate);
//3. 输入,然后输出
char[] cbuf = new char[5];
int len;
while((len = fr.read(cbuf)) != -1){
fw.write(cbuf,0,len);
}
//4. 关闭资源
fr.close();
fw.close();
}
}
2. 再改成try、catch的版本
public class FileReaderFileWriterCopy {
public static void main(String[] args) {
FileReader fr = null;
FileWriter fw = null;
try {
//1. File实例化
File copied = new File("Hello\\src\\io\\hello1.txt");
File generate = new File("Hello\\src\\io\\hello2.txt");
//2. 流实例化
fr = new FileReader(copied);
fw = new FileWriter(generate);
//3. 输入,然后输出
char[] cbuf = new char[5];
int len;
while((len = fr.read(cbuf)) != -1){
fw.write(cbuf,0,len);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
//4. 关闭资源
try {
if(fr!=null){ fr.close(); }//如果copied的路径错误,fr实例化就会失败,fr就是null。如果不这样写,直接些fr.close(),如果fr是null,这里还会抛出另外的异常NullPointerException
} catch (IOException e) {
e.printStackTrace();
}
try {
if(fw!=null){ fw.close(); }
} catch (IOException e) {
e.printStackTrace();
}
}
}
}