これが私が現在使っているラインです
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);
-ありがとう
CSVReaderクラスのこのコンストラクターは、ファイルの読み取り中にcsvの1行目をスキップします。
CSVReader reader = new CSVReader(new FileReader(file), ',', '\'', 1);
この質問と回答は役に立ちました。さらに詳しく説明したいと思います Christophe Roussyのコメント 。最新のopencsv(この記事の執筆時点では2.3)の実際のコード行は次のとおりです。
new CSVReader( new StringReader(csvText), CSVParser.DEFAULT_SEPARATOR,
CSVParser.DEFAULT_QUOTE_CHARACTER, 1);
CSVReaderの代わりにCSVParserを使用することに注意してください。
少なくともバージョン3.8以降では、CSVReaderBuilder
を使用して、最初の行をスキップするように設定できます。
例:
CSVReader reader = new CSVReaderBuilder(inputStreamReader)
.withFieldAsNull(CSVReaderNullFieldIndicator.EMPTY_SEPARATORS)
// Skip the header
.withSkipLines(1)
.build();
最新バージョンのopencsvバージョンの使用-
CSVReader csvReader = new CSVReaderBuilder(new FileReader("book.csv")).withSkipLines(1).build()
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();