web-dev-qa-db-ja.com

ApacheCommonsを使用してCSVファイルヘッダーを取得する

私は過去2時間、私の問題の解決策を無駄に探していました。 Apache commons を使用してCSVファイルを読み取ろうとしていますが、ファイル全体を読み取ることができますが、問題は、配列内のCSVのヘッダーのみを抽出する方法です。

8
user3382344

デフォルトでは、CSVParserによって読み取られる最初のレコードは、常にヘッダーレコードになります。以下の例では:

_CSVFormat csvFileFormat = CSVFormat.DEFAULT.withHeader(FILE_HEADER_MAPPING);
FileReader fileReader = new FileReader("file");
CSVParser csvFileParser = new CSVParser(fileReader, csvFileFormat);
List csvRecords = csvFileParser.getRecords();
_

csvRecords.get(0)はヘッダーレコードを返します。

7
Darshan Mehta

私はどこを見ても、上記の解決策でさえうまくいきませんでした..この問題を抱えている他の人にとっては、これはうまくいきます。

Iterable<CSVRecord> records;
Reader in = new FileReader(fileLocation);
records = CSVFormat.Excel.withHeader().withSkipHeaderRecord(false).parse(in);
Set<String> headers = records.iterator().next().toMap().keySet();
2
crehop
BufferedReader br = new BufferedReader(new FileReader(filename));

CSVParser parser = CSVParser.parse(br, CSVFormat.Excel.withFirstRecordAsHeader());

List<String> headers = parser.getHeaderNames();

これは私のために働いた。最後の行は必要なもので、パーサーによって検出されたヘッダーを文字列のリストに抽出します。

0
Justin Geeslin