JDK7新特性
阿新 • • 發佈:2020-12-17
IO 異常的處理
JDK1.7之前的處理
public static void main(String[] args) {
// 提高變數的作用域,讓finally語句塊中能夠使用到。
FileWriter fw = null;
try {
// 1. new
// 可能會產生異常
fw = new FileWriter("day28_IO\\g.txt", true);
// 2. write
fw. write(97);
// 3. 重新整理
fw.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 4.
try {
fw.close();// Variable 'fw' might not have been initialized
} catch (IOException e) {
e. printStackTrace();
}
}
}
JDK7新特性
可以使用try-with-resource語句,該語句確保了每個資源在語句結束時關閉,所謂的資源(resource)是指在程式完成後,必須要關閉的物件。
格式:
try(建立流物件語句,如果多個,請使用";"隔開) {
// 可能產生異常的程式碼
} catch (異常型別 異常變數名) {
// 異常處理邏輯
}
示例程式碼:
public static void main(String[] args) {
try(
// 1.1 new
FileOutputStream fw = new FileOutputStream("day28_IO\\2.jpg");
// 1.2 new
FileInputStream fr = new FileInputStream("C:\\Users\\admin\\Desktop\\2.jpg");
) {
// 2. write
int len = 0;
while ((len = fr.read()) != -1) {
fw.write(len);
}
} catch (IOException e) {
// 異常的處理邏輯
e.printStackTrace();
}
}