回答
從Oracle docs,做以下檢查:
布爾canWrite() - 返回true,如果一個文件是當前應用程序進行讀寫操作;否則爲假。
boolean canRead() - 如果文件可被當前應用程序讀取,則返回true;否則爲假。
如果您問是否可以在文件被其他應用程序使用時寫入文件,您可能可以強制執行該文件,但這取決於其他應用程序的行爲。
是的,我的問題是,如果有辦法強制它,但謝謝你的答案! – user2429567
我從來沒有使用過這個,但[** FileChannel **](http://openjdk.java.net/projects/nio/javadoc/java/nio/channels/FileChannel.html)可能是你需要的。這裏有一個很好的例子**(http://www.java2s.com/Code/Java/File-Input-Output/DemonstratesfilelockingandimplefilereadandwriteoperationsusingjavaniochannelsFileChannel.htm)。 – kgdesouz
如果其他進程在應用程序想要使用的文件上獲得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
}
- 1. 錯誤說當寫入文件時文件已經打開
- 2. 文件沒有被寫入,已經關閉文件
- 3. C++/CLI - 使用的StreamWriter寫入文本文件覆蓋什麼已經存在
- 4. 寫在追加模式已經寫入文件
- 5. Python的ElementTree的:寫入文件時,它解析已經
- 6. 我試圖寫入一個已經包含信息的文件
- 7. PrintStream - 如何在已經創建的文件中寫入
- 8. 重寫一個文件,該程序已經使用
- 9. htaccess原來的重寫已經使用
- 10. 檢查一個文件是否已經寫入Android
- 11. 寫入已排序的文本文件
- 12. 使用QT寫入文件。將數據寫入已寫入文件的特定點
- 13. 文件已經存在使用system.io.file.copy
- 14. 閱讀已經用於流式寫入的文件有什麼缺點?
- 15. 已寫入文件上的FlushFileBuffers
- 16. 寫作到已經存在的文件中使用的FileWriter的Java
- 17. 如何使用document.write()寫入事件,除非它已被寫入?
- 18. 無法寫入XML聲明。 WriteStartDocument方法已經寫入它
- 19. 已經輸入
- 20. 使用bach寫入文件
- 21. 使用Java寫入文件
- 22. 使用node.js寫入文件
- 23. 使用PHP寫入文件
- 24. 使用register_shutdown_function寫入文件
- 25. 寫入文件使用python
- 26. 使用makefiles寫入文件
- 27. 使用Java寫入文件
- 28. 使用ajax寫入文件?
- 29. 使用JavaScript寫入文件
- 30. 使用流寫入文件
東西不管是不是你可以寫在另一個進程使用的文件是不是一個真正的Java的問題,但與底層操作系統做。 – Keppil
發佈您的代碼和確切的錯誤消息。如果該文件存在,則不應該遇到'FileNotFoundException'。 – jlordo
爲什麼你在兩個進程中使用同一個文件?我敢打賭,有一個更好的方法來做到這一點。 –