當我運行我的主要方法時,它會創建src/main/resources/sample.txt文件,然後讀取它的內容。每當我運行代碼時,它會給出java.lang.NullPointerException,當涉及到讀取src/main/resources/sample.txt時。但是當我刷新項目時,它讀取的是sample.txt,但不是的新內容,它讀取舊的內容。 看來我需要在讀取文本文件之前在eclipse中刷新java項目。 有沒有辦法在執行時刷新src/main/resources?如何在執行代碼時刷新src/main/resources文件夾?
0
A
回答
2
如果您能夠編寫該文件,那麼您應該可以閱讀它。
我的猜測是你寫它使用文件路徑src/main/resources
, 但使用的是ClassLoader.getResource
,這從classpath target/classes
讀讀書吧。
當您刷新項目和Eclipse構建吧,源文件src/main/resources
被複制到target/classes
,使他們在類路徑中的可用資源。
我建議不要在src/main/resources
中寫任何東西,因爲這隻有在您從項目目錄執行項目時纔有效。
通常,在程序啓動期間設置ClassLoader的類路徑。根據緩存實現的不同,類加載器通常無法獲取類路徑中文件的更改。您需要創建一個新的ClassLoader並丟棄舊的ClassLoader,但這對於這種情況太複雜了。
要讀取文件,請使用類似於您寫入文件的代碼:如果使用FileWriter,請使用FileReader;如果你使用FileOutputStream,使用FileInputstream等。
相關問題
- 1. 代碼在刷新時運行
- 2. setInterval在刷新時執行
- 3. sqlite3新手,如何在.db3文件上執行.sql代碼?
- 4. 如何在執行中獲取執行代碼的文件名?
- 5. 如何刷新表並同時執行?
- 6. 如何刷新執行php代碼的div
- 7. 如何使用java刷新文件夾
- 8. 如何使用時間刷新代碼
- 9. 如何在刷新頁面時運行我的JSP代碼
- 10. 如何在刷新頁面後更改運行時代碼
- 11. 刷新Lotus Notes文件夾
- 12. 如何防止在jsp中刷新時執行重新執行動作
- 13. 如果ListView不可見,刷新代碼是否執行?
- 14. 如何在JavaFX中打開新窗口時執行代碼?
- 15. 在Android中執行刷新刷新RecyclerView
- 16. 在我的代碼中執行刷新令牌 - 谷歌API a#
- 17. 僅在刷新頁面10秒後執行JavaScript代碼?
- 18. 刷新代碼
- 19. tableChange()在刷新JTable時執行
- 20. 在.js文件中執行PHP代碼
- 21. C++在文件夾中的所有文件上執行相同的代碼
- 22. 如何在整個文件夾中查找一行代碼?
- 23. 在運行時將代碼注入可執行文件
- 24. 執行XPages SSJS代碼是否完成刷新,而不是部分刷新?
- 25. 刷新得分每30秒自動執行代碼,並沒有「刷新」按鈕
- 26. 僅執行一次的代碼,Python啓動文件夾
- 27. 如何使用javascript代碼刷新php文件?
- 28. 在執行svn commit時在非svn文件夾上自動更新文件
- 29. 如何在執行多個事件時執行代碼, mousemove,而鼠標點擊
- 30. 如何在新電子郵件到達Android時執行一些代碼?
是的,你是完全正確的。這是我如何閱讀文本文件TestClass.class.getClassLoader()。getResource(「sample.txt」)。有沒有另一種讀取TestClass.class中的「/anypath/sample.txt」的方法? –
答覆已更新。我不確定這是不是你正在尋找的東西;寫一個文件然後再讀取它是有點奇怪的,因爲你可以將內容保存在內存中。所以如果我關閉了,你能提供一些代碼還是更多的細節? – Kenney
那麼我找到了一種方式File file = new File(「/ home/anypath/sample.txt」); –