本帖最后由 李健09 于 2013-8-27 15:10 编辑
- package com.IO2;
- /*
- 明白了BufferedReader类中特有的方法readLine的原理后,可以自己定义一个类中包含一个功能和readLine一直的方法,
- 来模拟一下BufferedReader
- */
- import java.io.*;
- class MyBufferedReader
- {
- private FileReader r;
- MyBufferedReader(FileReader r)
- {
- this.r =r;
- }
- //可以一次读一行数据的方法
- public String myReadLine() throws IOException
- {
- //定义一个临时容器,原BufferReader封装的是字符数组,为了演示方便,定义一个StringBuilder容器,
- //因为最终还是要将数据变成字符串
- StringBuilder sb=new StringBuilder();
- int ch=0;
- while((ch=r.read())!=-1)
- {
- if(ch=='\r')
- continue;
- if(ch=='\n')
- return sb.toString();
- else
- sb.append((char)ch);
- }
- if(sb.length()!=0)
- return sb.toString();
- return null;
- }
- public void myClose() throws IOException
- {
- r.close();
- }
- }
- public class MyBufferedReaderDemo
- {
- public static void main(String[] args) throws IOException
- {
- FileReader fr=new FileReader("F:\\java\\Workspaces\\MyEclipse Bling Edition 10\\day19\\mybufferedReader.txt");
- MyBufferedReader myBuf=new MyBufferedReader(fr);
- String line=null;
- while((line=myBuf.myReadLine())!=null)
- {
- sop(line);
-
- }
- myBuf.myClose();
- }
- public static void sop(Object obj)
- {
- System.out.println(obj);
- }
- }
复制代码 问下 主函数中while 语句中 line=myBuf.myReadLine())!=null line直接指向MyBufferedReader类的myReadLine() 方法不是应该是类名调用吗?
帮忙解释下;谢
|
|