本文提供有關閱讀文本文件的提示。但我首先要讀the whole file。然後我想通過new String(bytes, "UTF-8")
創建一個字符串。但是我需要大量的內存來完成這個操作。如何將字節轉換爲字符串和字節釋放的並行處理。我的意思是當一個新的字符串符號從字節出現在內存中時,這個字節被釋放。文本文件閱讀
Q
文本文件閱讀
0
A
回答
0
您無法一次有效地構建一個字符串。
我認爲你能做的最好的是這樣的:
String str = null;
BufferedReader r = new BufferedReader(new FileReader("filename", "UTF-8"));
try {
StringBuilder sb =
new StringBuilder(/* approx size of file in CHARACTERS */);
int ch;
while ((ch = r.read()) != -1) {
sb.append((char) ch);
}
str = sb.toString();
} finally {
r.close();
}
只要你的文件大小的估計是很好的(!不小於實際尺寸),這不會使用比絕對必要的更多的空間。問題是操作系統報告的文件大小將以字節大小而不是字符爲單位,並且像UTF-8這樣的編碼方案在兩種大小之間沒有簡單的關係。
1
在執行的FileInputStream方法read的多個呼叫與待讀取每個呼叫字節所需量:
public int read(byte[] b,
int off,
int len)
的創建LEN的塊的新字符串字節讀出。 然後連接字符串。
無論如何,這無助於節省大量的內存。
相關問題
- 1. C#閱讀文本文件
- 2. 閱讀文本文件
- 3. jquery - 閱讀文本文件?
- 4. 。當閱讀文本文件
- 5. 閱讀和文本文件
- 6. 閱讀文本文件 - C++
- 7. 閱讀文本文件
- 8. Perl閱讀文本文件
- 9. Android閱讀文本文件
- 10. 閱讀文本文件
- 11. 閱讀文本文件
- 12. 閱讀文本文件
- 13. 閱讀重文本文件
- 14. C閱讀文本文件
- 15. 閱讀文本文件C#
- 16. 閱讀文本文件
- 17. iPhone文本文件閱讀
- 18. 閱讀文本文件
- 19. 閱讀文本文件C
- 20. 閱讀文本文件
- 21. 閱讀大文本文件
- 22. 閱讀文本文件
- 23. 閱讀從文本文件
- 24. 閱讀文本文件
- 25. 閱讀文本文件
- 26. 閱讀文本文件
- 27. 閱讀文本文件
- 28. PyQT閱讀文本文件
- 29. Highcharts閱讀文本文件
- 30. 閱讀文本文件