2


我正在学习如何分解我的代码,所以我认为创建一个仅用于从输入文件中检索字符的函数会很好。这就是我的想法:

    public char getChar( String infile )
    {
       try
       {
           BufferedReader in = new BufferedReader( new FileReader( infile ));
           int ch = in.read();
           // do some decision making
           return (char)ch;
       }
       catch( IOException e )
       {
           System.out.println( e.getMessage() );
           System.exit(1);
       } 
     }

然后在构造函数或其他函数中,我可以像这样使用它:

    public constructor( String infile )
    {
        char newChar = getChar( infile ); 
        // some lines of codes later.. need another character
        newChar = getChar( infile );
    }

PS我没有测试这些代码,所以它可能包含这样的错误,但我希望我的想法是可以理解的。

请告诉我这是一个好主意还是坏主意,或者这种分解可以以不同的方式完成。感谢您的阅读。

编辑:是的,我确实希望 BufferedReader 获得下一个字符。而不是重新开始
例如:infile 包含这样的字符串:“ABC”
thisShouldBeA = getChar(infile);
thisSoundBeB = getChar(inflie);

4

1 回答 1

1
class Helper {
  private BufferedReader in;

  Helper(String infile) {
    this.in = new BufferedReader(new FileReader(infile));
  }

  char getChar() {
    try {
      return in.read();
    } catch (IOException e) {
       System.out.println( e.getMessage() );
       System.exit(1);
    }
  }

  void close() {
    this.in.close();
  }
}

class Other {
  void something(String infile) {
    Helper helper = new Helper(infile);
    char newChar = helper.getChar();
    char anotherNewChar = helper.getChar();

    helper.close();
   }
}
于 2013-01-28T22:34:19.830 回答