web-dev-qa-db-ja.com

OpenCSVリーダーを使用して最初の行をスキップする

これが私が現在使っているラインです

File booleanTopicFile;
// booleanTopicFile is csv file uploaded from form
CSVReader csvReader = new CSVReader(new InputStreamReader(new FileInputStream(booleanTopicFile), "UTF-8"));

見出しを含むcsvの最初の行をスキップしたい。デフォルトのコンストラクターですでに使用可能なデフォルトの1つのコンマ(、)を除いて、セパレーターを使用したくありません。パラメータ化されたコンストラクタには、noをスキップするオプションがあります。行の数ですが、コンストラクターの2番目と3番目のパラメーターの処理方法。

CSVReader csvReader = new CSVReader(new InputStreamReader(Reader reader, char c, char c1, int index);

-ありがとう

15
Sangram Anand

CSVReaderクラスのこのコンストラクターは、ファイルの読み取り中にcsvの1行目をスキップします。

CSVReader reader = new CSVReader(new FileReader(file), ',', '\'', 1);
27
Abhijeet Doshi

この質問と回答は役に立ちました。さらに詳しく説明したいと思います Christophe Roussyのコメント 。最新のopencsv(この記事の執筆時点では2.3)の実際のコード行は次のとおりです。

new CSVReader( new StringReader(csvText), CSVParser.DEFAULT_SEPARATOR,
               CSVParser.DEFAULT_QUOTE_CHARACTER, 1);

CSVReaderの代わりにCSVParserを使用することに注意してください。

12
Sinsanator

少なくともバージョン3.8以降では、CSVReaderBuilderを使用して、最初の行をスキップするように設定できます。

例:

CSVReader reader = new CSVReaderBuilder(inputStreamReader)
                .withFieldAsNull(CSVReaderNullFieldIndicator.EMPTY_SEPARATORS)
                // Skip the header
                .withSkipLines(1)
                .build();
11
dazito

最新バージョンのopencsvバージョンの使用-

CSVReader csvReader = new CSVReaderBuilder(new FileReader("book.csv")).withSkipLines(1).build()

1
Vishnu Atrai

withFilterを使用することもできます。

watFileCsvBeans = new CsvToBeanBuilder<ClassType>(isr)
  .withType(ClassType.class)
  .withIgnoreLeadingWhiteSpace(true)
  // CsvToBeanFilter with a custom allowLine implementation
  .withFilter(line -> !line[0].equals("skipme"))
  .build()
  .parse();
0
Maroun