2011-06-16 34 views
0

我需要逐行讀取文件。
文件中的數據可以是任何東西,一個小字符串或一個巨大的Clob/Blob/XML。我正在使用String row = dataInputStream.readLine()來逐行獲取數據。但是,如果它是一個大的Clob/Blob/XML數據,則此方法會拋出錯誤,因爲它無法將大量數據放入String中。我該怎麼辦?如何從文件中讀取大的clob數據?

+2

如果數據可以是任何東西,則逐行讀取它是沒有意義的。 – 2011-06-16 11:53:39

回答

2

您不應該使用閱讀器。如果這是一個二進制(未知)文件,則應將其讀取爲來自BufferedInputStream之類的字節。然後做任何你需要的數據處理。 Apache commons-io有一個很好的IOUtils類,可以輕鬆將字節從一個流中讀入字節數組中,請參閱http://commons.apache.org/io/api-2.0/org/apache/commons/io/IOUtils.html

+0

嗨,對不起,我意味着任何類型的數據的混淆。我需要讀取的文件是從數據庫導出的表格(以分隔格式)。所以它將以簡單的文本格式。但是如果表中有任何CLOB/BLOB列,則每行的長度可能非常大。我如何從文件中讀取這麼大的一行?逐字閱讀是一種選擇,但我想找到一種更有效的方式。 – Preeti 2011-06-17 06:03:44

+0

混合類型的數據需要這樣處理。處理此問題的最可靠方法是將文件作爲字節讀取,並用分隔符分隔每個字段並分別處理它們。 – pap 2011-06-17 07:08:08

+0

好的,謝謝pap :) – Preeti 2011-06-17 10:08:44