黑马程序员技术交流社区

标题: 自己写的BufferReader类,帮助Reader实现readline()方法并添加行号 [打印本页]

作者: 嘿嘿小学徒    时间: 2013-1-4 09:39
标题: 自己写的BufferReader类,帮助Reader实现readline()方法并添加行号
  1. class MyReader {
  2.     public Reader reader;
  3.     public int index = 1; // 行号

  4.     public MyReader(Reader reader) {
  5.         this.reader = reader;
  6.     }

  7.     public String readLine() throws IOException { //将异常交给方法调用处处理
  8.         StringBuilder s = new StringBuilder(index + " : ");
  9.         int buf;
  10.         while ((buf = reader.read()) != 10 && buf != -1) { //当读到'\n'时停止读取
  11.             s.append((char) buf);
  12.         }
  13.         index++;
  14.         if (buf == -1)
  15.             return null;
  16.         else
  17.             return s.toString();
  18.     }

  19.     public void close() throws IOException {  //提供close方法,关闭资源;
  20.         if (reader != null) {
  21.             reader.close();
  22.         }
  23.     }
  24. }
复制代码

作者: 嘿嘿小学徒    时间: 2013-1-4 09:40
测试类:
  1.     public static void main(String[] args) {
  2.         Reader in = null;
  3.         MyReader myReader=null;
  4.         try {
  5.             in = new FileReader("/home/gaoyihang/Desktop/NormalWindow.java");
  6.             myReader = new MyReader(in);
  7.             String s = null; // 定义一个字符串 接收每一行数据
  8.             while ((s = myReader.readLine()) != null) {
  9.                 System.out.println(s);
  10.             }
  11.         } catch (IOException e) {
  12.             e.printStackTrace();
  13.         } finally {
  14.             if (myReader != null) {
  15.                 try {
  16.                     myReader.close();
  17.                 } catch (IOException e) {
  18.                     e.printStackTrace();
  19.                 }
  20.             }
  21.         }
  22.     }
复制代码
希望大家多提意见!

作者: 嘿嘿小学徒    时间: 2013-1-4 11:59
叶桂宏 发表于 2013-1-4 10:17
把index定义为私有的,然后提供set方法,这样程序是不是更好些呢?

谢谢建议!!  是应该定义似有的!!

这set方法也秒!   可以初始化行号~   妙啊 !谢谢!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2