在 Java 7 中,而不是
try {
fos = new FileOutputStream("movies.txt");
dos = new DataOutputStream(fos);
dos.writeUTF("Java 7 Block Buster");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fos.close();
dos.close();
} catch (IOException e) {
// log the exception
}
}
你可以这样做
try (FileOutputStream fos = new FileOutputStream("movies.txt");
DataOutputStream dos = new DataOutputStream(fos)) {
dos.writeUTF("Java 7 Block Buster");
} catch (IOException e) {
// log the exception
}
但我正在使用第 3 方 API,需要.close()
调用此 API 来清理开放资源
try (org.pdfclown.files.File file = new org.pdfclown.files.File("movies.pdf")) {
...
}
Java 7 如何知道如何处理这样的第 3 方 API?它如何知道调用什么方法?