FileNotFoundException的问题

yibinwolf 2005-10-26 02:54:23
现有这样一个系统,每隔一定时间,会有新文件拷到某个文件夹里面;同时我自己编写了一个Java线程在后台运行,每个一定时间使用FileInputStream在这个文件夹里面读取新拷过来的文件。但是经常会出现某个文件正在拷贝的时候,正好这个去读这个文件,然后就会报错,错误消息大概是:
java.io.FileNotFoundException: e:\data\20040710-070000.dat(另一个程序正在使用此文件,进程无法访问。)
请问有什么方法避免这种情况呢?
...全文
104 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yibinwolf 2005-10-28
  • 打赏
  • 举报
回复
老兄,能否举个例子啊?以前没有用过。
eureka0891 2005-10-28
  • 打赏
  • 举报
回复
FileInputStream file=new FileInputStream("sss");
FileDescriptor fd=file.getFD();
用fd的特性来控制读写,
具体自己去试吧
yibinwolf 2005-10-27
  • 打赏
  • 举报
回复
关键是读文件是我自己的程序,而写文件是其它程序来控制的。
如果都是我自己的程序,那么用synchronized可以实现,但是关键是我无法控制写文件的程序。
laxxx6 2005-10-27
  • 打赏
  • 举报
回复
你没有把线和同步,,read和copy的都是同一个东西,,他们产生了竞争资源的情况,,加上synchronized同步,,,看看如何...
Mark_MaoHUA 2005-10-26
  • 打赏
  • 举报
回复
你加个线程琐则,利用线程的同步,复制时禁止读,你刚才捕获的异常就时说明再复制,你可以提示现在在复制,请稍后再读

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧