在JDK1.7之前使用try catch finally处理流中的异常
格式:
try{ 可能会产生异常的代码 }catch(异常类变量 变量名){ 异常的处理逻辑 }finally{ 一定会指定的代码 资源释放 }
代码:
public static void main(String[] args) { FileWriter fw=null; try { fw = new FileWriter("D:\\file\\a.txt"); fw.write("abc"); fw.write("\n"); fw.write("def"); }catch (IOException e){ e.getStackTrace(); }finally { if (fw!=null){ try { fw.close(); } catch (IOException e) { e.printStackTrace(); } } } }
JDK7的新特性
在try的后边可以增加一个()在括号中可以定义流对象
那么这个流对象的作用域就在try中有效
try中的代码执行完毕 会自动把流对象释放 不用写finally
格式
try(流对象;流对象..){可以定义多个流对象 可能会产生异常的代码 }catch(异常类变量 变量名){ 异常的处理逻辑 }
代码:
public static void main(String[] args) { try (FileInputStream fis = new FileInputStream("E:\\eula.1028.txt"); FileOutputStream fos = new FileOutputStream("D:\\file\\eula.1027.txt");){ int len=0; byte[] bytes=new byte[1024]; while ((len=fis.read(bytes))!=-1){ fos.write(bytes,0,len); } //关闭流释放资源 fis.close(); fos.close(); }catch (IOException e){ System.out.println(e); } }标签:write,fw,处理,try,finally,io,catch,异常 From: https://www.cnblogs.com/shenziyi/p/16798439.html