Java读取文件
在构造阶段会可能会抛出异常,并且要求清理的类,最安全的使用方式是使用嵌套的try子句:因为对于每个构造,都必须包含自己的try-catch语句块中,并且对于每一个对象构造必须都跟随一个try-finally语句块以确保清理。
在Thinking in Java中找到了一个比较好的java文件的读取代码(p273)如下:
package exceptions;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
public class CleanUp {
public static void main(String[] args) {
try {
BufferedReader bf = new BufferedReader(new FileReader(new File("Ex6.java")));
try {
String s;
int i = 1;
while((s = bf.readLine()) != null) {
}
} catch (Exception e) {
System.out.println("Caught exceptions");
e.printStackTrace();
} finally {
bf.close();
}
} catch (Exception e) {
System.out.println("Input file construction filed");
}
}
}
这种通用的清理惯用方式在构造器不抛出任何异常的时候仍然应该运用,其基本规则是:在创建需要清理的对象之后,立即进入一个try-catch语句块。