2015-04-12 71 views
0

嗨我只是想知道是否有可能在使用LineIterator格式的Apache或BufferedReader或Scanner讀取超過2GB大小的文本文件時限制(JVM)的內存大小?
比方說,我有2GB的文本文件,我只想爲該文件讀取500MB。當我達到500MB時,我將銷燬包含數據的變量(String),並且它將繼續以另一個500mb讀取文本文件,直到達到文本文件的最大大小。所以這就像分割文本文件500MB。具有指定內存限制的Java讀取文件

LineIterator it = FileUtils.lineIterator(file,"UTF-8"); 

    String line = null; 

      try { 
        while (it.hasNext()) { 
        line = it.nextLine(); 


        } 
+1

最簡單的方法 - 創建一個'500mb''byte []'並填充它。 –

+0

但是數據是字符串而不是字節 – tuturyokgaming

+0

文件中的所有內容都是字節。如果你願意,你可以創建一個'char []'。 –

回答

0

你可以閱讀(中,詮釋深圳讀者)

的BufferedReader使用的BufferedReader文件(新的FileReader( 「C:\ DATA \輸入file.txt的」),8 * 1024)

+0

8 * 1024是什麼意思?它宣佈的最大尺寸? – tuturyokgaming

+0

這就是我嘗試過的尺寸,請繼續並改變 –