SuperCsvを使用して特定の行を読み取ることは可能ですか?
.csvファイルに100行が含まれていて、行番号11を読みたいとします。
CSVファイルには通常、可変長のレコードが含まれているため、指定したレコードに「ジャンプ」することはできません。唯一の解決策は、必要なレコードに到達するまで、カウントを維持しながら、ファイルの先頭からCSVレコードを順番に読み取ることです。
この行のスキップを実行するための特別なAPIがSuperCsvに見つからなかったため、目的CsvListReader#read()
の行を取得するには、メソッドを手動で11回呼び出す必要があると思います。
他のCSV読み取りライブラリに「行にジャンプ」機能があるかどうかはわかりません。機能している場合でも、最初に示した理由により、必要な行に手動でスキップするよりもパフォーマンスが向上する可能性はありません。段落。
これがあなたが適応できる簡単な解決策です:
listReader = new CsvListReader(new InputStreamReader(new FileInputStream(CSVFILE, CHARSET), CsvPreference.TAB_PREFERENCE);
listReader.getHeader(false);
while ((listReader.read(processors)) != null) {
if (listReader.getLineNumber() == 1) {
System.out.println("Do whaever you need.");
}
}