Java基础之IO流,利用StringBuilder模拟BufferedReader的readLine方法

import java.io.*;

class MyBufferedReaderDemo
{
    public static void main(String[] args) throws IOException
    {
        MyBufferedReader myReader = new MyBufferedReader("MyBufferedReaderDemo.java");
        
        String line = null;
        while((line=myReader.readLine())!=null)
        {
            System.out.println(line);
        }
        
        myReader.close();
    }
}

class MyBufferedReader
{
    private FileReader fileReader = null;
    
    public MyBufferedReader(String fileName) throws IOException
    {
        fileReader = new FileReader(fileName);
    }
    
    public String readLine() throws IOException
    {
        StringBuilder sb = new StringBuilder();
        int ch = 0;
        
        while((ch = fileReader.read())!=-1)
        {
            if(ch == '\r')
                continue;
            else if(ch == '\n')
                return sb.toString();
            else
                sb.append((char)ch);
        }
        
        if(sb.length()!=0)
            return sb.toString();
            
        return null;
    }
    
    public void close() throws IOException
    {
        fileReader.close();
    }
}
posted @ 2013-01-29 13:06  陈晓明  阅读(915)  评论(0编辑  收藏  举报