IO异常处理
public static void main(String[] args) {
FileWriter f = null;
try {
f = new FileWriter("demo2.txt");
} catch (IOException e) {
e.printStackTrace();
}
try {
f.write("as");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
f.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// 不合理的处理方式,当抛出异常进入catch块后会继续向下执行
合理的处理方式
try {
FileWriter f = new FileWriter("demo2.txt");
f.write("as");
f.close();
} catch (IOException e) {
e.printStackTrace();
}
然而资源一定要关闭
FileWriter f = null;// 在外边建立引用,在try内处理异常
try {
f = new FileWriter("k:\\demo2.txt");//winodws 转移字符\\需要写两个
f.write("as");
} catch (IOException e) {
e.printStackTrace();
} finally {
try{
f.close();//单独try
} catch(Exception e) {
e.printStackTrace();
}
}
java.io.FileNotFoundException: k:\demo2.txt (系统找不到指定的路径。)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
at java.io.FileOutputStream.<init>(FileOutputStream.java:110)
at java.io.FileWriter.<init>(FileWriter.java:63)
at test.io.FileWriterDemo2.main(FileWriterDemo2.java:19)
Exception in thread "main" java.lang.NullPointerException
at test.io.FileWriterDemo2.main(FileWriterDemo2.java:26)
因为都创建失败了,f为空,则调用f.close NullPointException;
finally 优化:
finally {
try{
if(f != null) {
f.close();
}
}catch(IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
FileWriter f = null;
try {
f = new FileWriter("demo2.txt");
} catch (IOException e) {
e.printStackTrace();
}
try {
f.write("as");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
f.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// 不合理的处理方式,当抛出异常进入catch块后会继续向下执行
合理的处理方式
try {
FileWriter f = new FileWriter("demo2.txt");
f.write("as");
f.close();
} catch (IOException e) {
e.printStackTrace();
}
然而资源一定要关闭
FileWriter f = null;// 在外边建立引用,在try内处理异常
try {
f = new FileWriter("k:\\demo2.txt");//winodws 转移字符\\需要写两个
f.write("as");
} catch (IOException e) {
e.printStackTrace();
} finally {
try{
f.close();//单独try
} catch(Exception e) {
e.printStackTrace();
}
}
java.io.FileNotFoundException: k:\demo2.txt (系统找不到指定的路径。)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
at java.io.FileOutputStream.<init>(FileOutputStream.java:110)
at java.io.FileWriter.<init>(FileWriter.java:63)
at test.io.FileWriterDemo2.main(FileWriterDemo2.java:19)
Exception in thread "main" java.lang.NullPointerException
at test.io.FileWriterDemo2.main(FileWriterDemo2.java:26)
因为都创建失败了,f为空,则调用f.close NullPointException;
finally 优化:
finally {
try{
if(f != null) {
f.close();
}
}catch(IOException e) {
e.printStackTrace();
}
}