我想轉換我的java代碼中的comp3和EBCIDIC字符,但即時通訊運行到內存不足異常,因爲處理的數據量大約爲5 GB。我的代碼是目前如下:處理comp3和Java中的ebcidic轉換爲大文件的ASCII
byte[] data = Files.readAllBytes(path);
這導致一個內存溢出異常,我可以理解,但我不能使用文件掃描器以及因爲文件中的數據不會被分成行。
任何人都可以點我如何處理這個
注意正確的方向:該文件可能包含不同長度的記錄,因此根據記錄長度的接縫不可能的分裂它。
您一次處理一條記錄。永遠不需要將整個文件加載到內存中。編譯器不這樣做:你爲什麼要這樣做? – EJP
我同意你的意見,我不想加載整個文件一次,但記錄長度是不同的說,第1 10行140個字符,20-30 40個字符40-45 140個字符。這些記錄由記錄中存在的record_id標識。 im scepticle基於塊大小獲取 – BaN3
您不知道。您基於記錄大小獲取它。不知何故,讀取該文件的原始程序一次只讀取一條記錄。你也可以。這些記錄中有一個長度單詞或一個固定的分隔符。告訴我們。 – EJP