2015-04-17 75 views
9

所以,我正在處理集成遺留系統。它會生成一個大文本文件,用一個大字符串打印指令。真的很大的字符串。我們正在談論450 000個字符或更多。從文件中讀取大(450000+個字符)字符串

我需要把它分解成行,每條指令一條。每條指令由一個五位代碼分隔,其中代碼包含下一條指令中的字符數。

我的解決辦法是寫一個使用緩存讀取該文件讀入一個字符串,隨後拆分成線,並保存到新文件的小型的Java程序。

處理此問題的任何建議?緩衝閱讀器能夠將它讀入常規字符串嗎?我做錯了嗎?

+0

'BufferedReader'應該能夠讀取數據。 – luiges90

+0

我會用'StringBuilder' – brso05

+0

其實我會處理以塊的文件,而不是把它全部變成'String'或'StringBuilder'如果性能成爲一個問題,否則我只能將其全部加載到'StringBuilder'。 – brso05

回答

3

是的。使用緩衝讀卡器。

計算指令的最大大小並創建一個該大小的char []。然後執行如下操作:

reader.read(charArray, 0, 5); 

// parse the header 

reader.read(charArray, 0, lengthOfInstruction); 

String instruction = new String(charArray, 0, lengthOfInstruction); 

// do stuff with the instruction 

您將此放在一個while循環中,該循環在文件結束時終止。

這可能不是最運行時有效,但它可能不夠好,將是足夠簡單,讓工作。

+0

我最終做的幾乎是這個。 –