A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mishisanyi 中级黑马   /  2015-6-12 22:48  /  240 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/**
*
*/
package io;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;

/**
* @author mishi
*
*/

public class MyLineBufferReaderDemo {

        /**
         * @param args
         */
        public static void main(String[] args) {

                // TODO 自动生成的方法存根
                MyLineBufferedReader myDemo=null;
                try {
                        myDemo = new MyLineBufferedReader(new FileReader("D:\\HaxLogs1.txt"));
                        String str=null;
                        while((str=myDemo.readLine())!=null)
                        {
                                System.out.println(myDemo.getNum()+":"+str);
                        }
                } catch (Exception e) {
                        // TODO: handle exception
                        e.printStackTrace();
                }
                finally
                {
                        try {
                                myDemo.close();
                        } catch (Exception e2) {
                                // TODO: handle exception
                                e2.printStackTrace();
                        }
                }
        }

}

class MyLineBufferedReader extends Reader
{
        private Reader in;
        public MyLineBufferedReader(Reader in) {
                // TODO 自动生成的构造函数存根
                this.in = in;
        }
        private int  num =1;
        public int getNum()
        {
                return num;
        }
        public String readLine()throws IOException
        {
                StringBuilder sb = new StringBuilder();
                int ch;
                while((ch=in.read())!=-1)
                {
                        if(ch=='\r')
                                continue;
                        if(ch=='\n')
                        {
                                num++;
                                return sb.toString();
                        }
                        sb.append((char)ch);
                }
                return null;
        }
        public void setLineNum(int num)
        {
                this.num = num;
        }
        @Override
        public void close() throws IOException {
                // TODO 自动生成的方法存根
                in.close();
        }
        @Override
        public int read(char[] cbuf, int off, int len) throws IOException {
                // TODO 自动生成的方法存根
                return in.read(cbuf, off, len);

        }

}
自己写的小Demo,和别人呼啸交流啦

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马