java 自定义BufferedReader

class MyBufferedReader {
    private FileReader r;

    public MyBufferedReader(FileReader r) {
        this.r = r;
    }

    //可以一次读一行数据的方法
    public String myReadLine() throws IOException {
        //定义一个临时容器。原BufferedReader封装的是字符数组。
        //我们定义一个StringBuild容器。因为最终还是要将数据变成字符串。
        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("buf.txt");
        MyBufferedReader myBuf = new MyBufferedReader(fr);
        String line = null;
        while ((line = myBuf.myReadLine()) != null) {
            System.out.println(line);
        }
        myBuf.myClose();
    }
}

猜你喜欢

转载自www.cnblogs.com/hongxiao2020/p/12679049.html
今日推荐