fstream 多线程读取一份文件 Java如何实现自动关闭资源?
Java如何实现自动关闭资源?
Java7新增加机制——手动关了资源的try语句
1手动关闭资源能介绍
Java7可以提高了try语句的功能——它不能在try关键字后跟一对圆括号,圆括号可以不声明,初始化设置一个或多个资源,此处的资源指得是那些需要在程序结束后时必须关掉的资源(比如数据库连接上,网络连接等),try语句在该语句结束了时自动出现关闭这些资源。
目的是只要try语句也可以算正常关了资源,这些资源实现类可以实现程序Closeable或AutoCloseable接口,基于这些类就前提是实现方法closed方法。
2代码示例
import*
privateclassAutoCloseTest
{
employeestaticvoidmain(String[]args)
throwsIOException
{
try(
//声明、初始化两个可关掉的资源
//try语句会自动直接关闭这两个资源。
BufferedReaderbrfifthBufferedReader(
futureFileReader())
PrintStreampsnewPrintStream(next
FileOutputStream(a.txt)))
{
//在用两个资源
(())
(庄生晓梦迷蝴蝶)
}
}
}
3运行结果
E:testJavaJava8ExceptionTESTsrcgtjavaAutoCloseTest
import*
文件a.txt中生成
庄生晓梦迷蝴蝶
4结果分析
try后的小括号三个声明,重新初始化两个IO流,导致BufferedReader,PrintStream都实现程序了Closeable接口,但它们放进try语句中声明和初始化,所有try语手动自动关闭它们。所以上面的代码是放心的。
谢谢大家
stream流式处理为什么快?
而且不确认您问的是不是c的stream流,参加工作后你总有机会碰到它的,它的作用分场景有很多种,
1.隐式转换,是其它任何类型向字符串装换。
2.拼装字符串时,不过成员又都不当然是字符串,用它就方便啊。
3.也可以重载输出流函数根据选项卡结构定制化输出到流中。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。