[请教]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