我正在使用java.io.BufferedWriter编写一些代码 我尝试的第一件事是:
String filename = new String("test.txt");
Charset charset = new Charset("US-ASCII");
try {
BufferedWriter bw = Files.newBufferedWriter(Paths.get(filename), charset);
bw.write("hello");
} catch (IOException e) {
System.out.println(e);
}
输出一个空的test.txt 看到一个例子,按照以下格式,我试过:
String filename = new String("test.txt");
Charset charset = new Charset("US-ASCII");
try (BufferedWriter bw = Files.newBufferedWriter(Paths.get(filename), charset)){
bw.write("hello");
} catch (IOException e) {
System.out.println(e);
}
输出第一行“hello”的文本文件。 这种形式意味着什么,为什么它在我第一次尝试时没有用呢?
答案 0 :(得分:5)
这在Java 7中称为“try-with-resources”,如果您将其修复为
,您的BufferedWriter将自动关闭 try (BufferedWriter bw = Files.newBufferedWriter(Paths.get("filename"), StandardCharsets.US_ASCII)) {
bw.write("hello");
}
请参阅http://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html
答案 1 :(得分:1)
1-st选项在语法上是正确的。
我想你错过了
bw.close();
完成写作后。
关闭流,先冲洗它。