首页 > 代码库 > java 21 - 8 复制文本文件的5种方式

java 21 - 8 复制文本文件的5种方式

需求:复制文本文件
分析:
  由于文本文件我们用记事本打开后可以读懂,所以使用字符流。
  而字符流有5种复制的方式:


首先写main方法

 1     public static void main(String[] args) throws IOException { 2         // 数据源 3         String startfile = "C:\\Users\\Administrator\\Desktop\\新建文件夹\\start.txt"; 4         // 目的地 5         String endfile = "C:\\Users\\Administrator\\Desktop\\新建文件夹\\end.txt"; 6          7         //method1(startfile,endfile); 8         //method2(startfile,endfile); 9         //method3(startfile,endfile);10         //method4(startfile,endfile);11         method5(startfile,endfile);12 13     }

 

第一种方式:基本字符流一次读取一个字符

 1     private static void method1(String startfile,String endfile) throws IOException { 2         // 基本字符流一次读写一个字符 3         //封装数据源 4         FileReader fr = new FileReader(startfile); 5         //封装目的地 6         FileWriter fw = new FileWriter(endfile); 7          8         //一次读写一个字符 9         int ch = 0;10         while((ch = fr.read()) != -1){11             fw.write(ch);12         }13         //释放资源14         fr.close();15         fw.close();16     }

 

第二种方式:基本字符流一次读取一个字符数组

 1     private static void method2(String startfile, String endfile) throws IOException { 2         // 基本字符流一次读写一个字符数组 3         FileReader fr = new FileReader(startfile); 4         FileWriter fw = new FileWriter(endfile); 5          6         char[] ch = new char[1024]; 7         int len = 0; 8         while((len = fr.read(ch)) != -1){ 9             fw.write(ch,0,len);//这里需要注意10         }11         fr.close();12         fw.close();13     }

 

第三种方式:缓冲字符流一次读取一个字符

 1     private static void method3(String startfile, String endfile) throws IOException{ 2         // 字符缓冲流一次读取一个字符 3         BufferedReader br = new BufferedReader(new FileReader(startfile)); 4         BufferedWriter bw = new BufferedWriter(new FileWriter(endfile)); 5         int ch = 0; 6         while((ch = br.read()) != -1){ 7             bw.write(ch); 8         } 9         br.close();10         bw.close();11         12     }

 

第四种方式:缓冲字符流一次读取一个字符数组

 1     private static void method4(String startfile, String endfile) throws IOException { 2         // 字符缓冲流一次读取一个字符数组 3         BufferedWriter bw = new BufferedWriter(new FileWriter(endfile)); 4         BufferedReader br = new BufferedReader(new FileReader(startfile)); 5         char[] ch = new char[1024]; 6         int len = 0; 7         while((len = br.read(ch)) != -1){ 8             bw.write(ch,0,len); 9         }10         br.close();11         bw.close();12         13     }

 

第五种方式:缓冲字符流一次读取一个字符串(熟练掌握)

    private static void method5(String startfile, String endfile) throws IOException {        // 字符缓冲流一次读取一个字符串        BufferedReader br = new BufferedReader(new FileReader(startfile));        BufferedWriter bw = new BufferedWriter(new FileWriter(endfile));        String line = null;        while((line = br.readLine()) != null){            bw.write(line);            bw.newLine();                }            br.close();            bw.close();                }

 

java 21 - 8 复制文本文件的5种方式