在java中有沒有什麼方法來讀取文件的內容,在關閉它之前正在被另一個處理程序更新?Java - 如何同時讀取和寫入文件?
2
A
回答
2
從理論上講,它很容易做到,但是文件並不是用來以這種方式交換數據,而是根據您的要求進行交換,可能會非常棘手。這就是爲什麼沒有通用的解決方案。
例如如果您想在另一個進程寫入文件時讀取文件,即使作者尚未完成,閱讀線程也會看到EOF。您必須重新打開文件並跳至上次閱讀文件的位置並繼續。寫入線程可能會滾動它正在寫入的文件,這意味着讀取必須檢測並處理它。
你想要做什麼特異性?
+0
不是用這種方式交換數據嗎? SQLite似乎有所不同;-)好吧,我把它拉伸一點。 – 2011-07-27 09:59:30
3
這取決於操作系統。
傳統上,POSIX-y操作系統(Linux,Solaris,...)在讀取和寫入時都可以打開文件,即使是單獨的進程也是完全沒有問題的(它們甚至支持讀取正在讀取的文件來自和/或寫入)。
在Windows中,更常見的方法是獨佔打開文件(與普遍認爲的相反,Windows 確實支持非排他性文件訪問,它很少被應用程序使用)。
Java無法指定您想要訪問文件的方式,因此使用了平臺默認設置(Linux/Solaris上的共享訪問,Windows上的獨佔訪問)。
*對於Java 7中的NIO和新的NIO,這可能是錯誤的,但我不是一個大的NIO專家。
相關問題
- 1. 同時讀取和寫入文件
- 2. C:同時讀取和寫入文件
- 3. 同時讀取和寫入python文件
- 4. 同時讀取和寫入文件?
- 5. java:同時讀取和寫入文件,文件併發
- 6. 同時讀取和寫入java
- 7. 在java中同時讀取和寫入文件
- 8. 如何讀取和寫入XML文件?
- 9. Java - 讀取和寫入文本文件
- 10. 如何在同一時間寫入和讀取文件
- 11. Java:文件讀取/寫入
- 12. Java - 文件讀取/寫入
- 13. 讀取和寫入文件到java
- 14. 讀取和寫入JSON文件Java
- 15. 錯誤讀取和寫入文件(JAVA)
- 16. Linux - 同時從文件讀取/寫入
- 17. 讀取和寫入同一個文件
- 18. 寫入和讀取同一個文件
- 19. 如何讀取和寫入文件
- 20. C++如何讀取和寫入文件
- 21. 如何讀取和寫入文件
- 22. 讀取和寫入文件
- 23. 讀取和寫入文件
- 24. 讀取和寫入文件
- 25. 寫入和讀取文件
- 26. 同時寫入和讀取同一文件(磁盤異步?)
- 27. Python - 寫入和讀取臨時文件
- 28. Java - 如何使用PrintWriter,BufferedWriter和FileWriter寫入文件時讀取文件?
- 29. java 6支持同時讀取和寫入同一個文件嗎?
- 30. 在java中讀取和寫入同一個文件
這是在單個JVM中嗎?你需要做什麼的根本原因是什麼 - 你解決了什麼問題? –
爲什麼不建立這兩個處理程序之間的直接流? – TC1
與ThorbjørnRavn Andersen及其他人的評論一致 - 您需要談論您擁有的實際潛在問題,而不是您認爲的解決方案(然後詢問如何實施該解決方案)。如果不按照你所要求的方式進行操作,那麼你很可能已經有方法去做你最終想達到的目標。我懷疑你想執行進程間通信,但我只是有一個瘋狂的猜測。 – Chii