读书人

[请问]java中不同程序对同一文件的访问

发布时间: 2012-01-24 23:11:55 作者: rapoo

[请教]java中不同程序对同一文件的访问
场景:存在多个应用程序,都需要对同一文件进行读写操作

如何控制不同应用程序之间的同步?

如何避免不同程序同时对同一文件读写,产生文件内容不一致的问题?

Note:是不同程序 ,不是不同进程对同一文件的读写。

[解决办法]
利用线程来实现吧,读写文件代码放在一个类的方法里,加synchronized来实现同步,
[解决办法]
建缓冲区/
[解决办法]
You may want to check out class java.nio.FileChannel java.nio.FileLock and related classes.
[解决办法]
文件锁
File file = new File(path);
RandomAccessFile raf = new RandomAccessFile(file, "rws ") //以独占方式打开文件
...
raf.close();

File file = new File(path);
RandomAccessFile raf = new RandomAccessFile(file, "rw ");
FileChannel fc = raf.getChannel();
//FileLock lock = fc.tryLock();
FileLock lock = fc.lock();
...
lock.release();
raf.close();
[解决办法]
应在被读的文件上做文章!
让他同时只能被一个程序操作.
[解决办法]
学习
[解决办法]
应该是读者与写者的问题,不过很惭愧,我也没学好,帮顶一下!!1

读书人网 >J2SE开发

热点推荐