jam*_*meh 2 java io try-catch bufferedwriter
我正在使用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);
}
Run Code Online (Sandbox Code Playgroud)
输出一个空的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);
}
Run Code Online (Sandbox Code Playgroud)
输出第一行"hello"的文本文件.这种形式意味着什么,为什么它在我的第一次尝试没有时起作用?
这在Java 7中称为"try-with-resources",如果您将其修改为BufferedWriter,它将自动关闭
try (BufferedWriter bw = Files.newBufferedWriter(Paths.get("filename"), StandardCharsets.US_ASCII)) {
bw.write("hello");
}
Run Code Online (Sandbox Code Playgroud)
请参阅http://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html