- import java.io.*;
- /*
- 模拟BufferedReader
- readLine()的原理
- */
- class MyBufferedReader
- {
- private FileReader fr;
- MyBufferedReader(FileReader fr){
- this.fr = fr;
- }
- //可以一次读一行数据的方法
- public String myReadLine() throws IOException
- {
- //定义一个临时容器,原BufferedReader封装的是字符数组。
- //为了演示方便,定义一个StringBuiler容器,因为最终还是将数组变成字符串。
- StringBuilder sb = new StringBuilder();
- int ch = 0;
- while ((ch = fr.read()) != -1)
- {
- if(ch == '\r')
- continue;
- if(ch == '\n')
- return sb.toString();
- else
- sb.append((char)ch);
- }
- return null;
- }
- public void myClose()throws IOException
- {
- fr.close();
- }
- }
- class MyBufferedReaderTest
- {
- public static void main(String[] args) throws IOException
- {
- FileReader fr = new FileReader("buf.txt");
- MyBufferedReader mybuf = new MyBufferedReader(fr);
- String line = null;
- while((line = mybuf.myReadLine()) != null ){
- System.out.println(line);
- }
- mybuf.myClose();
- }
- }
复制代码 为什么不能输出文件的最后一行 |