我寫了一個java類,它讀取一個文件並將每行存儲在一個數組列表中。我想大量訪問這個數組列表。每次調用該類訪問數組列表時,都會再次讀取該文件。我希望文件被讀取一次,然後多次訪問數組列表。我怎樣才能做到這一點?閱讀文件一次,並多次使用數據
0
A
回答
4
將其存儲在類的字段中。 I.e .:
public class Foo {
private List<String> list;
public List<String> readData() {
if (list != null) {
return list;
}
// do the reading.
}
}
請注意,如果這是用在多線程環境中,你必須採取額外的措施。例如在方法上輸入。
正如彼得指出,如果你可以讀多個文件,那麼你可以使用一個Map<String, List<String>>
另一個需要注意的是,你應該只使用一個這個類的實例。如果您創建多個實例,則不會達到所需的效果。
0
也許你需要做一個單身?然後你只會閱讀一次該文件 - 當你創建一個真正的新類實例。
1
這聽起來像你應該閱讀文件在建設的類,而不是在訪問它時。這並不一定意味着在的構造函數中,請注意 - 您可能希望有一個靜態工廠方法,將文件讀取到ArrayList
中,然後將該列表傳遞給實際的構造函數。這將使該類更容易測試(並在其他測試中使用)。
然後你只需要創建一次類,並讓你的代碼的其餘部分使用同一個實例。請注意,這個不是需要使用單例模式,這本身會使測試更難。它只是意味着將實例傳播給所有需要它的代碼。
0
如果一個Web應用程序,也許你會認爲這是在ServletContext或在用戶的HttpSession取決於存儲多少沒有文件更改
相關問題
- 1. 閱讀文件只一次
- 2. ifstream多次閱讀
- 3. 如何使用AJAX加載文件一次並多次使用其數據?
- 4. 閱讀次數
- 5. 再次閱讀文件Python
- 6. 多次讀取一個閱讀器
- 7. 服務調用太多次了一天:閱讀Gmail閱讀
- 8. Java - 將數據加載到內存一次,並多次使用
- 9. 多次閱讀請求流
- 10. 閱讀多行文件並使用rdbuf()
- 11. Gson閱讀器只能使用一次?
- 12. 閱讀同一個文件的多行次Python
- 13. 計算一篇文章閱讀次數的多少
- 14. 文字層次閱讀C#
- 15. Golang從同一個閱讀器多次閱讀
- 16. 讀取文件多次
- 17. 如何一次讀取多位數據?
- 18. 從Gmail中使用JavaMail API一次又一次地閱讀郵件
- 19. 使用ggplot一次讀取多個文件並保存多個圖塊
- 20. 爲什麼多次閱讀文件的閱讀時間有所不同?
- 21. 反應:實例化組件一次並使用多次
- 22. 如何讓用戶在閱讀csv文件時出現一次?
- 23. 使用NodeJS NFC閱讀庫pcsclite,如何多次讀取?
- 24. 編程輸出到Java文件(並再次閱讀)
- 25. 下載文件,保存並再次閱讀 - >錯誤
- 26. 讀取多個csv數據並一次創建新列
- 27. 一次使用多個SQLite數據庫
- 28. 閱讀文件多數據類型(C++)
- 29. 閱讀json文件並根據文件數據下載文件
- 30. Hadoop的閱讀2個文件一次(一個頭文件和一個數據文件)
你可能想要把列表轉換成一個Map <字符串,列表 >以防文件名改變或者至少檢查文件名是否與最後一次加載相同。 –
2011-01-27 07:13:34