2013-03-08 94 views
-1

我想讀取包含行和列的巨大數據文件(csv格式)。我想按順序閱讀和處理各個欄目。哪種方法在速度和內存利用率方面更高效? 我應該使用Java的CSVReader還是隨機訪問文件功能? 請幫忙。 謝謝在Java中讀取csv文件CSVReader或RandomAccessFile更有效嗎?

+2

'CSVReader'和'RandomAccessFile'是兩個不同的東西。請注意,每個緩衝讀取器都比無緩衝的「RandomAccessFile」讀取更快。 – 2013-03-08 08:13:18

回答

2

如果您最關心的是性能和效率,請使用memory mapped files and NIO並編寫您自己的CSV解析器。

但是大多數情況下,這只是浪費你的時間。因此,我建議您首先嚐試CSVReader,並且只有當您發現這不適用於您時,纔會編寫自己的CSV解析器。

另請注意,BufferedReader通常會比RandomAccessFile更快。

+1

+1 - 關於不浪費時間表現的觀點。如果您有明確的證據表明1)您的應用程序太慢並且2)大部分時間讀取文件是唯一值得做的事情。 – 2013-03-08 08:27:17

+0

謝謝你的回答!我將暫時使用CSVReader。作爲其他要編碼的東西。 – Kaur 2013-03-08 10:46:06