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

 

转载于:https://www.cnblogs.com/LZL-student/p/5926411.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值