• java按行读取txt并按行写入


       IO流想必大家都很熟悉了,本次实现的需求是按行读取文件内容并且按行写入,代码如下:

         

     1 try {
     2             String encoding="utf-8";    //设定自己需要的字符编码集 
     3             File file = new File("c:/text.txt");
     4             if(file.exists() && file.isFile()){
     5                 InputStreamReader read = new InputStreamReader(
     6                         new FileInputStream(file), encoding);// 考虑到编码格式        
     7                 //FileReader read = new FileReader(file); //不考虑转码,可使用FileReader;
     8                 BufferedReader br = new BufferedReader(read);//使用缓冲流按行读取
     9                 String lineText = null;
    10                 StringBuffer sb = new StringBuffer();
    11                 while((lineText=br.readLine()) !=null){
    12                     System.out.println(lineText);
    13                     sb.append(lineText+"
    ");     
    14                 }
    15                 br.close();
    16                 read.close();
    17                 FileWriter fw = new FileWriter("c:/t.txt");   
    18                 BufferedWriter bw = new BufferedWriter(fw);   
    19                 bw.write(sb.toString());
    20                 bw.close();
    21                 fw.close();
    22             }else{
              System.out.println("找不到指定的文件");   
             }
    23 24 } catch (IOException e) { 25 // TODO Auto-generated catch block 26 e.printStackTrace(); 27 }

      下面是个人对以上代码的理解:

      1、为什么用字符流 而不用字节流?

            文件读取选择字符流是因为文件是纯文本,使用字符流可以按行读取,操作快,适合阅读。

      2、为什么用InputStreamReader 而不用FileReader?

        FileReader是InputStreamReader的子类,继承了它的方法,则不同点在于构造函数,

        InputStreamReader的构造函数参数为 InputStream 和编码方式,而FileReader的构造函数参数可以file对象和String的path,当需要根据file和paht

        读取文件时,选用FileReader。

      另记:在使用String类的split()方法时,按“|” 截取字符串的时候,并不能出现正常的结果,原因是“|” 是转义字符,

          需加("\|")。

      

  • 相关阅读:
    Oracle第一课
    Web前端试题
    E
    Kingdom of Black and White
    D. Let's Go Hiking
    2021牛客寒假 第一场
    Codeforces Round #691 (Div. 2)
    CF1461D
    CF1461B
    浙财16th校赛 F因子
  • 原文地址:https://www.cnblogs.com/gzd-123/p/5474844.html
Copyright © 2020-2023  润新知