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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© tfy 中级黑马   /  2012-12-2 12:43  /  1328 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package com.itheima;

import java.io.*;

/**
*第八题  8、 自定义字符输入流的包装类,通过这个包装类对底层字符输入流进行包装,
* 让程序通过这个包装类读取某个文本文件
* (例如,一个java源文件)时,能够在读取的每行前面都加上有行号和冒号。


提示:(MyBufferedReader,MyLineNumberReader)

*/




class MyLineNumberReader

{

       private Reader r;

       int lineNum=0;



       MyLineNumberReader( Reader r )

       {

              this.r=r;

              lineNum=0;

       }



       public String readLine() throws Exception

       {

              StringBuffer sb=new StringBuffer();

              int num=0;

              while( (num=r.read())!=-1 )

              {

                     if( num=='\r')

                            continue;

                     else if( num=='\n')

                     {

                            lineNum++;

                            return addLineNum( sb.toString() );



                     }

                     else

                     {

                            sb.append((char)num);

                     }



              }

              if( sb.length()>0 )

              {

                     return sb.toString();

              }

              return null;

       }



       public String addLineNum( String s )

       {

              return lineNum+": "+s;

       }



       public void close() throws Exception

       {

              r.close();

       }

}


public class Test8

{

       public static void main(String args[])
                       throws Exception

       {

              MyLineNumberReader my=new
                              MyLineNumberReader( new FileReader("upLoadTxt.java"));

              String s=null;

              while( (s=my.readLine())!=null )

              {

                     System.out.println( s );

              }

       }

}

2 个回复

正序浏览
一切都会过去
回复 使用道具 举报
这叫不叫泄密....  是不是该封杀...
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马