A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

找一个文本文件,把最后一行文字的回车换行删掉,然后测试我的代码
  1. package com.xiaozhi.io;  

  2. import java.io.BufferedReader;  
  3. import java.io.FileReader;  
  4. import java.io.FileWriter;  
  5. import java.io.IOException;  

  6. public class Test {  

  7.     public static void main(String[] args) throws IOException {  
  8.         MybufferReader mybufferReader=new MybufferReader(new FileReader("c:\\1.txt"));  
  9.         String line=null;  
  10.         while((line=mybufferReader.myRead())!=null)  
  11.         {  
  12.             System.out.println(line);  
  13.         }  
  14.     }  
  15. }  

  16. class MybufferReader{  
  17.     FileReader fileReader;  

  18.       
  19.     public MybufferReader(FileReader fileReader) {  
  20.         super();  
  21.         this.fileReader = fileReader;  
  22.     }  

  23.     public String myRead() throws IOException  
  24.     {  
  25.         int c=0;  
  26.         StringBuilder builder=new StringBuilder();  
  27.         while((c=fileReader.read())!=-1 && c!='\r'){  
  28.             if(c == '\n')  
  29.                 continue;  
  30.             builder.append((char)c);  
  31.         }  
  32.         if(c== -1)  
  33.         {
  34.                 System.out.println("-------------------"+builder.toString());
  35.                 return builder.toString().length()==0 ? null : builder.toString();//最后一行没有回程换行  
  36.                
  37.         }
  38.         return builder.toString();  
  39.     }  
  40. }  
复制代码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

1 个回复

正序浏览
你的代码有问题啊,c=fileReader.read())!=-1 && c!='\r'   这个判断语句把c='\r'的情况给丢了

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马