使用输入流阅读
在Java 7之前,这是您的操作方式
InputStream in = null;
try {
in = new FileInputStream("simple.csv");
BufferedReader buf = new BufferedReader(new InputStreamReader(in));
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {}
}
}
对于Java 7,您可以使用Closeable,例如
try (BufferedReader buf = new BufferedReader(...)) {}
编辑:为什么我没有关闭上面的buf?看看BufferedReader.close()的源代码
public void close() throws IOException {
synchronized (lock) {
if (in == null)
return;
in.close();
in = null;
cb = null;
}
}
用输出流编写
编辑2:相同的原则适用于作家.但是,如果您真的对在发生IOException时刷新流感兴趣,则必须检查writer和流中是否为null,然后分别尝试tro关闭它们.那虽然,提供了很多额外的代码.它可能看起来像这样:
BufferedWriter buf = null;
OutputStream out = null;
try {
out = new FileOutputStream("file");
buf = new BufferedWriter(new OutputStreamWriter(out));
} finally {
if (buf != null) {
try { buf.close(); } catch (IOException ex){}
}
if (out != null) {
try { out.close(); } catch (IOException ex){}
}
}
不是很漂亮您可以引入帮助程序例程以关闭流或查看Java 7或Apache IOUtils