用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

自动调用close()方法

2016-09-07 作者: 永夜极光举报

[java]代码库

自动调用close()方法

原来:   
FileInputStream in = null;  
FileOutputStream out = null;  
try {  
  in = new FileInputStream("xanadu.txt");  
  out = new FileOutputStream("outagain.txt");  
  int c;  
  while ((c = in.read()) != -1)  
    out.write(c);  
} finally {  
  if (in != null)  
    in.close();  
  if (out != null)  
    out.close();  
}  

现在: 
try (    //注意,这里是 (  不是{
  FileInputStream in = new FileInputStream("xanadu.txt");  
  FileOutputStream out = new FileOutputStream("outagain.txt")  
) {  
  int c;  
  while((c=in.read()) != -1 )  
    out.write();  
}  

1.在资源部分中,最后一个资源后面是不允许使用分号的。
2.资源块使用()分隔,而不是常见的{},以此将其与现有的try块分隔开来。如果存在资源块,那么里面必须要包含一个或多个资源定义语句。
3.每个资源定义具有如下形式:type var = expression;在资源块中不能使用通常的语句
4.资源都是隐式final的,也就是说即便没有使用final,这些资源也都是final的。如果尝试为资源变量赋值会得到一个编译期错误。
5.资源必须是AutoCloseable的子类型,如果不是的话会得到一个编译期错误。
6.资源关闭的顺序与定义的顺序正好相反。


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...