工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 5795|回复: 5

java 文件流关闭与文件删除操作

[复制链接]
发表于 2007-3-26 04:32 | 显示全部楼层 |阅读模式
文件流操作的深刻体验!(删除文件与文件流关闭)
今天写一个程序,功能是从一个文件夹A拿rar文件到另一个文件夹B,然后将rar文件解压缩到文件夹C,在文件夹C中进行文件操作后删除C中所有的文件,以达到重复利用的目的。
经观察发现,用同一个rar文件进行测验,每次解压缩时都会弹出窗口提示文件夹C中有同名文件存在是否需要删除,这显然不利于命令行方式的调用。为什么写的文件删除操作
不能达到目的呢?一开始怀疑过java的delete()函数不能达到目的,在这方面“动”了很多脑筋啊... ,甚至怀疑是方法的缺陷。问题最后确定在file.delete()函数前后 file.exists() 为true;
这才追溯到文件处理模块中读取过文件,然而两个文件处理模块都没有文件流关闭操作;在两个模块的catch前加上 fis.close()函数,其中一个起作用了,另外一个不起作用。
这时候干脆在catch模块的最后加上 finally{}模块,也就是说无论如何程序总会执行该模块,保证文件流读取后会关闭掉(注:后面提到的文件处理模块很多return,故在finally模块关闭流。)。

插曲:回想以前就对文件流关闭的细节没有注意,也没养成良好的习惯,心想程序结束后文件流总会关闭的;但是,如果该程序被其它程序调用而不关闭流,就影响了对文件的其它操作(如删除文件)。

加班到此刻,在此作一小记~
发表于 2007-3-27 19:45 | 显示全部楼层
回复

使用道具 举报

发表于 2007-3-28 00:08 | 显示全部楼层
在finally里关闭文件或释放其它重要资源是个好习惯
回复

使用道具 举报

发表于 2007-4-2 18:09 | 显示全部楼层
JAVA原来可以解压缩RAR。。我一直以为只能处理ZIP。。。
回复

使用道具 举报

发表于 2007-4-2 18:10 | 显示全部楼层
好像不行吧。。还是要用RAR的命令。。。
回复

使用道具 举报

发表于 2007-4-2 21:59 | 显示全部楼层
我也玩了以下JAVA的压缩和解压缩,挺不错的。。哈哈

java.util.zip
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2024-5-20 14:50

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表