黑马程序员技术交流社区

标题: java中当一个文本文件里面只有换行符时 按行读取时 每一... [打印本页]

作者: liquid1993    时间: 2015-5-9 23:14
标题: java中当一个文本文件里面只有换行符时 按行读取时 每一...
如题


  1. import java.io.*;

  2. class MyLineNumberReader
  3. {
  4.         private Reader r;
  5.         private int lineNumber;
  6.         MyLineNumberReader(Reader r)
  7.         {
  8.                 this.r = r;
  9.         }

  10.         public String myReadLine()throws IOException
  11.         {

  12.                 lineNumber++;
  13.                 StringBuilder sb = new StringBuilder();

  14.                 int ch = 0;

  15.                 while((ch=r.read())!=-1)
  16.                 {
  17.                         if(ch=='\r')
  18.                                 continue;
  19.                         if(ch=='\n')
  20.                         {
  21.                                 //System.out.println(sb.toString());
  22.                                 return sb.toString();
  23.                         }
  24.                         else
  25.                                 sb.append((char)ch);
  26.                 }
  27.                 if(sb.length()!=0)
  28.                         return sb.toString();
  29.                 return null;
  30.         }
  31.         public void setLineNumber(int lineNumber)
  32.         {
  33.                 this.lineNumber = lineNumber;
  34.         }
  35.         public int getLineNumber()
  36.         {
  37.                 return lineNumber;
  38.         }

  39.         public void myClose()throws IOException
  40.         {
  41.                 r.close();
  42.         }
  43. }

  44. class  MyLineNumberReaderDemo
  45. {
  46.         public static void main(String[] args) throws IOException
  47.         {
  48.                 FileReader fr = new FileReader("me.txt");

  49.                 MyLineNumberReader mylnr = new MyLineNumberReader(fr);

  50.                 String line = null;
  51.                 //mylnr.setLineNumber(100);
  52.                 //line=mylnr.myReadLine();
  53.                 //System.out.println(mylnr.getLineNumber()+"::"+line);
  54.                 while((<font color="#ff0000">line=mylnr.myReadLine())!=null</font>)   <font color="#ffa500"> </font><font color="#0000ff">这条语句读的时候  当我文本里面只有换行符的时候  是不是不算NULL  那么也就是说流可以存储换行吗?</font>
  55.                 {
  56.                         System.out.println(mylnr.getLineNumber()+"::"+line);
  57.                 }

  58.                 mylnr.myClose();
  59.         }
  60. }
复制代码



作者: liquid1993    时间: 2015-5-9 23:16
while((line=mylnr.myReadLine())!=null)    这条语句读的时候  当我文本里面只有换行符的时候  是不是不算NULL  那么也就是说流可以存储换行吗?




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