目录
复制的原理:其实就是将一个文件数据存储到另一个文件中。
案例
需求
复制一个文本文件
思路
1.创建一个文件,用于存储数据。
2.定义读取流和该文件关联。
3.通过不断的读写完成数据复制存储。
4.关闭资源。
编码
import java.io.*;
class CopyText{
public static void main(String[] args)throws IOException{
copy_1();
copy_2(); // 这种读写方式效率更高
}
public static void copy_2(){
FileWriter fw=null;
FileReader fr=null;
try{
// 创建目的地
fw=new FileWriter("SystemDemo_copy.txt");
// 与已有文件关联
fr=new FileReader("SystemDemo.java");
char[] buf=new char[1024];
int num=0;
while((num=fr.read(buf))!=-1){
fw.write(buf,0,num);
}
}catch(IOException ex){
throw new RuntimeException("读写失败!");
}finally{
if(fr!=null){ // fr为null:表明该对象并没有被创建,所以不用关闭流资源,提高效率。
try{
fr.close(); // 关闭字符读取流
}catch(IOException ex){ex.printStackTrace();}
}
if(fw!=null){ // fw为null:表明该对象并没有被创建,所以不用关闭流资源,提高效率。
try{
fw.close(); // 关闭字符写入流
}catch(IOException ex){ex.printStackTrace();}
}
}
}
public static void copy_1()throws IOException{
// 创建目的地
FileWriter fw=new FileWriter("RuntimeDemo_copy.txt");
// 与已有文件关联
FileReader fr=new FileReader("RuntimeDemo.java");
int ch=0;
while((ch=fr.read())!=-1){
fw.write(ch);
}
fw.close(); // 关闭字符写入流
fr.close(); // 关闭字符读取流
}
}