Ola*_*n.S 26 java file-io inputstream
我是测试自动化的实习生.我正在使用Eclipse创建Junit代码并使用Eclipse运行.我正在使用FileInputStream函数从excel表中重新获取数据.
FileInputStream fi=new FileInputStream("c:\\search.xls");
Workbook w=Workbook.getWorkbook(fi);
Sheet s=w.getSheet(0);
Run Code Online (Sandbox Code Playgroud)
是否有必要关闭Inputstream功能?如果是这样,请指导我一些编码.
FileInputStream fi=null;
try {
fi=new FileInputStream("c:\\search.xls");
Workbook w=Workbook.getWorkbook(fi);
Sheet s=w.getSheet(0);
} finally {
if (fi!=null) {
fi.close();
}
}
Run Code Online (Sandbox Code Playgroud)
您需要关闭()或结束您的程序.
但是,如果不关闭文件,则可能会遇到令人困惑的问题
最佳做法是始终关闭您已完成的资源,但我将单元测试视为脚本,并不总是必须遵循最佳实践.
是! 处理完资源后,应始终释放它们一次。Java具有强大的垃圾收集机制(请注意,与资源管理/泄漏相比,它是不同的东西。)因此,垃圾收集器无法确定您将来是否需要该资源?未能释放资源可能会导致诸如拒绝服务,性能不佳之类的问题。
正如已经回答的,但是另一种省力的方法是尝试使用资源
try (FileInputStream fi = new FileInputStream("c:\\search.xls")) {
//do something with fi.
//fi.getChannel() ;
} catch(IOException e) {
// exception handling.
} finally {
// some statements for finally.
}
Run Code Online (Sandbox Code Playgroud)
现在,您无需显式调用fi.close()方法。
| 归档时间: |
|
| 查看次数: |
42580 次 |
| 最近记录: |