| 用LineNumberReader提供更好的出错信息 |
| 出自:www.zdnet.com.cn 2002年08月10日 21:46 |
对于软件开发人员来说,使用BufferedReader来逐行阅读简单的配置文件或者阅读某种格式的数据是非常普通的事情。这些工具经常能够提供提供发现出错的报告,但是有的时候却不能记录下出错位置的行号。很幸运,Java的java.io.LineNumberReader为我们提供了一种不需要额外工作的纪录行号的方法。
java.io.LineNumberReader是一个扩展的java.io.BufferedReader,它能够提供压缩的附加功能来处理行号。如果我们定义所有的行都必须以#为开始,那么使用LineNumberReader的解决方案如下:
public void parseFile(Reader reader) throws IOException { LineNumberReader in = new LineNumberReader(reader); String line = ""; while( (line = in.readLine( )) != null ) { if(line else { throw new IOException("Missing # at line "+in.getLineNumber( )); } } in.flush( ); in.close( ); }
行号0代表我们并没有开始阅读程序行。在程序中,我们阅读该行并输出这一行和它的行号,数据行会在line 1开始。
在LineNumberReader中还有一种setLineNumber(int)方式,但是它的作用仅仅是表面意义上的。把行号设置为42并不会真的到42行去;它只是简单的把当前行的号码改变为42。因此,下一行就是第43行。
|
| 【】【http://www.trainlinux.com】【Close】 |