1

SuperCsvを使用して特定の行を読み取ることは可能ですか?

.csvファイルに100行が含まれていて、行番号11を読みたいとします。

4

2 に答える 2

4

CSVファイルには通常、可変長のレコードが含まれているため、指定したレコードに「ジャンプ」することはできません。唯一の解決策は、必要なレコードに到達するまで、カウントを維持しながら、ファイルの先頭からCSVレコードを順番に読み取ることです。

この行のスキップを実行するための特別なAPIがSuperCsvに見つからなかったため、目的CsvListReader#read()の行を取得するには、メソッドを手動で11回呼び出す必要があると思います。

他のCSV読み取りライブラリに「行にジャンプ」機能があるかどうかはわかりません。機能している場合でも、最初に示した理由により、必要な行に手動でスキップするよりもパフォーマンスが向上する可能性はありません。段落。

于 2012-02-11T12:33:04.837 に答える
0

これがあなたが適応できる簡単な解決策です:

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.");
    }
}
于 2019-07-25T19:43:54.927 に答える