写入已使用的文件

时间:2013-05-28 17:25:12

标签: java

我想写一个已被其他进程使用的文件。

我的问题是:有没有办法避免FilenotfoundException,并写入文件虽然它正在使用?

谢谢!

2 个答案:

答案 0 :(得分:0)

Oracle docs,执行以下检查:

boolean canWrite() - 如果当前应用程序可以写入文件,则返回true;否则就是假的。

boolean canRead() - 如果当前应用程序可以读取文件,则返回true;否则就是假的。

如果您在询问是否可以在另一个应用程序使用该文件时写入该文件,您可能可以强制它,但这取决于其他应用程序的行为。

答案 1 :(得分:0)

如果其他进程在您的应用程序要使用的文件上获得lock,则必须确保应用程序等待特定时间,直到锁定被释放。 locking mechanism完全取决于使用file的其他进程。 你可以试试这样的东西

FileInputStream fin = new FileInputStream("test.txt");  
    FileChannel channel = fin.getChannel();  
    FileLock lock = channel.tryLock();  
    if (lock != null) {  
        try {  
            // read the file  
        } finally {  
            lock.release();  
        }  
    } else {  
        // some other process has locked the file for some reason  
    }