在Java程序中創建File對象實例時,是否有可能使併發運行的程序也可以訪問該文件進行寫入?所以就像如果我有一個帶有example.txt路徑的File對象,另一個程序是否可以在我的File對象存在的同時寫入該example.txt文件?使用java.io.File類
1
A
回答
1
做
File f = new File("C:\\test.txt");
無助於該文件。所以任何其他線程或進程可以打開文件,如果他們喜歡。
它只是創建一個代表文件的對象,但不打開它或以其他方式觸摸它。
0
是的。擁有一個File實例與實際的文件系統無關,除非你調用其中的一個方法。實際上,您可以創建甚至不存在的路徑的File實例。
1
是的,因爲Java中的File對象實際上只代表文件系統路徑。它實際上不是一個文件句柄,它在底層資源上具有鎖定語義。您甚至可以將File實例創建爲不存在的資源。
2
如果你有寫,
File f=new File("example.txt");
這意味着,你只創建了一個文件對象,但根據給定path.Also該文件對象在虛擬內存(Java的你的硬盤上沒有創建的文件)。如果其他已經加載到虛擬內存中的應用程序可以訪問或調用文件對象的引用,那麼該應用程序可以訪問文件對象。
如果您創建了一個文件,
f.createNewFile();
再有就是在您的硬盤disk.Then一個真正的文件任何其他應用程序可以訪問它在你的硬盤的其他文件。你會看到here
相關問題
- 1. 與java.io.File的
- 2. 怎麼投的java.io.File到com.liferay.portal.kernel.util.File
- 3. Windows 7阻止java.io.File方法?
- 4. 使用java.io.File方法設置文件權限
- 5. 如何使用svnClientAdapter java API getLogMessages(java.io.File path,SVNRevision revisionStart,SVNRevision revisionEnd)
- 6. 如何從Apache的UploadedFile的類得到的java.io.File?
- 7. 如何從資產內的文件創建java.io.File類?
- 8. Jersey沒有MessageBodyWriter類型爲「java.io.File」的身體部分
- 9. 錯誤創建與java.io.File類型[不明確的構造函數參數類型]
- 10. 將URL字符串轉換爲java.io.File
- 11. tomcat/struts啓動拋出java.io.File的ClassNotFoundException
- 12. 如何執行java.io.File的或的FileInputStream
- 13. 將Java.io.File轉換爲org.core.resource.IFile時出錯?
- 14. java.io.File(父,子)不能正常工作
- 15. Android Studio - 將位圖轉換爲java.io.File
- 16. android pushwoosh他的方法'java.io.File android.support.v4.content.ContextCompat
- 17. Android:使用相機意圖拍攝照片並將其保存到java.io.File
- 18. 是否有任何jar文件可用於java.io.File?
- 19. 處理UNC文件路徑的Java.io.file構造函數
- 20. java.io.File java中mkdir()和mkdirs()之間的區別
- 21. Hadoop和jgit在java.io.file和dataoutputstream之間進行轉換
- 22. 在Servlet容器中爲Google Client API加載pk12 java.io.File
- 23. Grails - 方法java.io.File的模糊重載方法#<init>
- 24. 可以java.io.File length()鎖定文件並防止File.delete()工作?
- 25. 是否有可能java.io.File的傳遞給JUnitCore.runClasses()
- 26. 獲取來自Java.IO.File變量的字節數組xamarin android
- 27. 如何以編程方式比較兩個java.io.File
- 28. 在java.io.File中找不到構造函數File()
- 29. java.io.File構造函數行爲或可能是多線程問題?
- 30. 給定一個類路徑資源,有沒有辦法讓java.io.File對象擁有/包含它?
所以當另一個程序寫入example.txt時,canRead方法會返回false,然後當它是空閒的,它會返回true? – Andrew
@Andrew:可能不是。這取決於你的文件系統,但據我所知,Linux,Mac和Windows(即ext *和ntfs)不會阻止讀取,而另一個進程有一個文件可以寫入。如果你真的想要鎖定文件,那麼你需要使用'java.nio.channels.FileLock'類。 –