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();
            
    }

 

posted @ 2016-10-01 21:16  卡拉瓦  阅读(309)  评论(0编辑  收藏  举报