黑马程序员技术交流社区

标题: 你知道吗,有的文本文件竟然有两个-1结束标记 [打印本页]

作者: 黑马晓志    时间: 2014-3-17 23:47
标题: 你知道吗,有的文本文件竟然有两个-1结束标记
找一个文本文件,把最后一行文字的回车换行删掉,然后测试我的代码
  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. }  
复制代码

作者: 谭荣强    时间: 2014-3-18 01:29
你的代码有问题啊,c=fileReader.read())!=-1 && c!='\r'   这个判断语句把c='\r'的情况给丢了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2