zoukankan      html  css  js  c++  java
  • java 21

    需求:复制文本文件
    分析:
      由于文本文件我们用记事本打开后可以读懂,所以使用字符流。
      而字符流有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();
                
        }
    何事都只需坚持.. 难? 维熟尔。 LZL的自学历程...只需坚持
  • 相关阅读:
    状态压缩 + 暴力 HDOJ 4770 Lights Against Dudely
    简单几何(推公式) UVA 11646 Athletics Track
    简单几何(四边形形状) UVA 11800 Determine the Shape
    简单几何(求交点) UVA 11437 Triangle Fun
    计算几何模板
    简单几何(相对运动距离最值) UVA 11796 Dog Distance
    简单几何(求划分区域) LA 3263 That Nice Euler Circuit
    覆盖的面积 HDU
    Desert King 最小比率生成树 (好题)
    约会安排 (区间合并)毒瘤题
  • 原文地址:https://www.cnblogs.com/LZL-student/p/5926411.html
Copyright © 2011-2022 走看看