Tag: 资源管理

Java中的RAII ……资源处理总是那么难看?

我刚刚玩了Java文件系统API,并提供了以下函数,用于复制二进制文件。 最初的源代码来自Web,但我添加了try / catch / finally子句,以确保在退出函数之前,如果发生错误,将关闭缓冲区流(因此,我的操作系统资源被释放)。 我减少了function以显示模式: public static void copyFile(FileOutputStream oDStream, FileInputStream oSStream) throw etc… { BufferedInputStream oSBuffer = new BufferedInputStream(oSStream, 4096); BufferedOutputStream oDBuffer = new BufferedOutputStream(oDStream, 4096); try { try { int c; while((c = oSBuffer.read()) != -1) // could throw a IOException { oDBuffer.write(c); // could throw a IOException } } finally […]