码迷,mamicode.com
首页 > 其他好文 > 详细

BufferedReader的实现

时间:2018-07-19 16:14:53      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:ade   out   red   while   new   err   imp   方便   return   

import java.io.*;

public class MyBufferedReader {
    private FileReader fr;
    MyBufferedReader(FileReader fr)
    {
        this.fr = fr;
    }
    
    //可以一次性读一行数据的方法
    public String myReadLine() throws IOException
    {
        //定义一个临时容器。原BufferReader封装的是字符数组。
        //为了演示方便,定义一个StringBuilder容器。因为最终还是要将数据变成字符串
        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);
        }
        if(sb.length() != 0)  //若有数据,则把剩下的数据返回
            return sb.toString();
        
        return null;
    }
    
    public void myClose() throws IOException
    {
        fr.close();
    }
    
    
    
    public static void main(String[] args) throws IOException {
        MyBufferedReader mbr = new MyBufferedReader(new FileReader("buf_copy.txt"));
        String str = null;
        while((str = mbr.myReadLine()) != null)
        {
            System.out.println(str);
        }
        mbr.myClose();
    }
}

BufferedReader的实现

标签:ade   out   red   while   new   err   imp   方便   return   

原文地址:https://www.cnblogs.com/coolcpp/p/bufferedreader.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!