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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 skill20 于 2014-4-28 10:30 编辑
  1. import java.io.*;
  2. class  BufferedTest
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 FileReader fr = null;
  7.                 try
  8.                 {
  9.                         fr = new FileReader("BufferTest.java");
  10.                         MyBuffer mb = new MyBuffer(fr);
  11.                         String st = null;
  12.                         while ((st = mb.myRead()) != null)
  13.                         {
  14.                                 System.out.println(st);
  15.                         }
  16.                         
  17.                 }
  18.                 catch (IOException e)
  19.                 {
  20.                         throw new RuntimeException("shiba");
  21.                 }
  22.                 finally
  23.                 {
  24.                         try
  25.                         {
  26.                                 if( fr != null)
  27.                                         fr.close();
  28.                         }
  29.                         catch (IOException e)
  30.                         {
  31.                                 throw new RuntimeException("cuowu");
  32.                         }
  33.                 }
  34.         }
  35. }
  36. class MyBuffer
  37. {
  38.       /*  public String myRead_1(FileReader r)
  39.         {
  40.                 StringBuilder sb = new StringBuilder();
  41.                 int num = 0;
  42.                 while ((num = r.read()) != -1)
  43.                 {
  44.                         if(num == '\r')
  45.                                 continue;
  46.                         if(num == '\n')
  47.                                 return sb.toString();
  48.                         else
  49.                                 sb.append((char)num);
  50.                 }
  51.                 if(sb.length() != 0)
  52.                         return sb.toString();
  53.                 return null;
  54.         } */
  55.        private FileReader r;
  56.         MyBuffer(FileReader r)
  57.         {
  58.                 this.r = r;
  59.         }
  60.         public String myRead( )throws IOException
  61.         {
  62.                 StringBuilder sb = new StringBuilder();
  63.                 int num = 0;
  64.                 while ((num = r.read()) != -1)
  65.                 {
  66.                         if(num == '\r')
  67.                                 continue;
  68.                         if(num == '\n')
  69.                                 return sb.toString();
  70.                         else
  71.                                 sb.append((char)num);
  72.                 }
  73.                 if(sb.length() != 0)
  74.                         return sb.toString();
  75.                 return null;
  76.         
  77.         }
  78.         public void close() throws IOException
  79.         {
  80.                 r.close();
  81.         }
  82. }
复制代码

提问:把装饰的类放方法里去,这个过程可行不?


2 个回复

倒序浏览
为什么不可以!
回复 使用道具 举报
可以是可以 但是你外面不是有个装饰类的引用吗 何必多此一举 外面一样是FileReader 直接调用r就可以了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马