CSVファイルを操作ことがあったので、その備忘録。
commons-csvすごい。
Dependencies
MavenのDependenciesに以下を追加。
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-csv</artifactId> <version>1.4</version> </dependency>
CSVファイルを読み込む
CSVファイルを読むときの使い方はこんな感じ。
String filePath = "/sample.csv"; //try-resourceでInputStreamReaderを取得 try (InputStream is = getClass().getResourceAsStream(filePath); BufferedReader br = new BufferedReader(new InputStreamReader(is))) { //CSVParserを取得する。読み込み方とかはここで設定。 CSVParser parser = CSVFormat .EXCEL // ExcelのCSV形式を指定 .withIgnoreEmptyLines(true) // 空行を無視する .withHeader("Header1", "Header2") // ヘッダの指定 .withFirstRecordAsHeader() // 最初の行をヘッダーとして読み飛ばす .withIgnoreSurroundingSpaces(true) // 値をtrimして取得する .parse(br); // CSVのレコードを取得 List<CSVRecord> recordList = parser.getRecords(); // CSVRecordに各カラムが入っているので、よしなにやる for (CSVRecord record : recordList ) { System.out.printLn(record.get(0)); } } catch (IOException e) { // 例外ハンドリング }
CSVファイルを書き込む
CSVファイルに書き込むときの使い方はこんな感じ。
File file = "./sample.csv"; //try-resourceでOutputStreamWriterを取得 try (BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "shift-jis"))) { // CSVPrinterを取得。書き込みの設定とかする CSVPrinter printer = CSVFormat .EXCEL // ExcelのCSV形式を指定 .withHeader("Header1", "Header2") // ヘッダの指定 .print(bw); // CSVのレコードを書込 printer.printRecord("Col1-1", "Col2-1", "Col3-1"); printer.printRecord("Col1-2", "Col2-2", "Col3-2"); } catch (IOException e) { // 例外ハンドリング }
リファレンス
基本的に使い方はシンプル。設定も色々あるので、Commons CSV – User Guideとかを見て、設定する感じ。
以上!!
参考になる書籍
Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発
- 作者: 株式会社NTTデータ
- 出版社/メーカー: 翔泳社
- 発売日: 2016/07/21
- メディア: 大型本
- この商品を含むブログ (1件) を見る
- 作者: 掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2017/12/20
- メディア: 単行本
- この商品を含むブログを見る
- 作者: 掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2018/01/30
- メディア: 単行本
- この商品を含むブログを見る
はじめてのSpring Boot―スプリング・フレームワークで簡単Javaアプリ開発 (I・O BOOKS)
- 作者: 槙俊明
- 出版社/メーカー: 工学社
- 発売日: 2016/09/01
- メディア: 単行本
- この商品を含むブログ (1件) を見る