SuperCSVで1000万件のCSVファイルを読み込んでみます。
ここで注意してほしいのは
パートⅢのソースで読み込みをしてはならないということです。
パートⅢのソースは取得したデータをメモリ展開しますので、あれで読もうとするとバンします![]()
ログファイルのように何件入るかわからないファイルの統計処理は必要最低限の情報を読み込んで
あとは捨てるようにします。
まずはCSVファイルから
sample2.csv (300MBぐらいになります)
-------------------------------------------------------------
test,テスト,テスト,いっぱい,テスト
test,テスト,テスト,いっぱい,テスト
・・・
・・・
test,テスト,テスト,いっぱい,おわり <= 1000万件目
-------------------------------------------------------------
パートⅢのJUnitに以下のメソッドを追加して実行してください
@Test
public void testCsvReader2() throws IOException{
ICsvListReader reader = new CsvListReader(new FileReader("sample2.csv"), CsvPreference.EXCEL_PREFERENCE);
List<List<String>> list = new ArrayList<List<String>>();
List<String> temp = null;
while ((temp = reader.read()) != null){
System.out.println(temp);
}
}
-------------------------------------------------------------
出力結果
[test, テスト, テスト, いっぱい, てすと]
[test, テスト, テスト, いっぱい, てすと]
・・・
・・・
[test, テスト, テスト, いっぱい, おわり]
-------------------------------------------------------------
SuperCSV自体はメモリ展開しないライブラリであることが検証できました(書き込み
はまだ試していませんが)
このように、自分が作ろうとしているシステムの使用に耐えられるかテストしてライブラリ
の選定を行います。
フリーのライブラリなんて不安だよ~って言う先輩がいたら、JUnitでテストして論破
してやる~とファイティングスピリッツいっぱいの方は↓をクリック
- Eclipse 3.5 完全攻略/宮本 信二
- ¥2,940
- Amazon.co.jp
