- try-with-resources是jdk1.7加入的机制。可以保证资源使用后正常关闭。try-with-resources比起try-catch-finally使代码更加简洁。
try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, true)))) {
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
writer.write(iterator.next());
writer.newLine();
}
} catch (IOException e) {
log.info(Type.FILE_WRITTEN_ERROR.getMessage());
}
- 如果try()里面有多个资源,需要用分号分开,资源的close方法的调用顺序与它们的创建顺序相反。
String sql = "UPDATE Customer SET name = ?, job = ?, gender = ?, address = ?, email = ?, phone = ? WHERE id = ?";
try (Connection conn = JdbcUtil.getConnection();
PreparedStatement ps = conn.prepareStatement(sql);
) {
for (int i = 0; i < updateStrings.length; i++) {
if (i == updateStrings.length - 1) {
ps.setInt(i + 1, Integer.parseInt(updateStrings[i]));
} else {
ps.setString(i + 1, updateStrings[i]);
}
}
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
- try-with-resource,资源必须实现AutoClosable接口。