1. 程式人生 > >Java中讀取大檔案的工具類

Java中讀取大檔案的工具類

超大檔案容易導致記憶體耗盡和重複讀取,怎麼辦?1、傳統的在記憶體中讀取這種方法帶來的問題是檔案的所有行都被存放在記憶體中,當檔案足夠大時很快就會導致程式丟擲OutOfMemoryError 異常。2、檔案流使用java.util.Scanner類掃描檔案的內容,一行一行連續地讀取。這種方案將會遍歷檔案中的所有行——允許對每一行進行處理,而不保持對它的引用。總之沒有把它們存放在記憶體中。3、Apache Commons IO流同樣也可以使用Commons IO庫實現,利用該庫提供的自定義LineIterator:LineIterator it = FileUtils.lineIterator(theFile, "UTF-8");