「Java」try-with-resources文でCSVファイルに書き込む

環境
Java 1.8
Eclipse 2019
Windows10 64bit
ファイル名:C:\study\test007.csv

書式
1.public static String join(CharSequence delimiter,Iterable<? extends CharSequence> elements)

指定されたdelimiterのコピーを使用して結合されたCharSequence要素のコピーからなる新しいStringを返します。
Stringクラスは文字列を表します。Javaプログラム内の"abc"などのリテラル文字列はすべて、このクラスのインスタンスとして実行されます。

2.public FileWriter(File file) throws IOException
Fileオブジェクトを指定してFileWriterオブジェクトを構築します。

3.public void write(String str) throws IOException
文字列を書き込みます。

使用例

package com.arkgame.testinfo;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class CsvWriteDemo {

      // ファイルパスの定数
      private static final String FILEPATH = "C:\\study\\test007.csv";

      // カンマ区切りの定数
      private static final String STRSPLIT = ",";

      // エラーメッセージ
      private static final String ERRMSG = "指定csvファイルが存在しません";

      // 改行符号
      private static final String BRMK = "\r\n";

      public static void main(String[] args) {

            File file = new File(FILEPATH);
            // ファイルの存在確認
            if (!file.exists()) {
                  System.out.println(ERRMSG);
                  return;
            }

            List<String> userList = new ArrayList<>();
            try (FileWriter fileWriter = new FileWriter(file)) {
                  System.out.println("第1行目の内容を書き込み");
                  userList.add("10001");
                  userList.add("山田 太郎");
                  userList.add("東京");
                  //引数1はカンマ区切りを指定してリストの要素を連携する
                  String lineA = String.join(STRSPLIT, userList);
                  fileWriter.write(lineA);
                  fileWriter.write(BRMK);

                  System.out.println("リストの内容がクリアされます");
                  userList.clear();
                  
                  System.out.println("第2行目の内容を書き込み");
                  userList.add("20002");
                  userList.add("山城 次郎");
                  userList.add("大阪");
                  //引数1はカンマ区切りを指定してリストの要素を連携する
                  String lineB = String.join(STRSPLIT, userList);
                  fileWriter.write(lineB);
                  fileWriter.write(BRMK);

            } catch (IOException es) {
                  System.out.println(es);
            } finally {
                  System.out.println("CSVファイル書き込むが終了しました。");
            }

      }

}

結果
1.「C:\study\test007.csv」に以下の内容を出力します。

10001,山田 太郎,東京
20002,山城 次郎,大阪

2.コンソールに以下の内容を出力します。

第1行目の内容を書き込み
リストの内容がクリアされます
第2行目の内容を書き込み
CSVファイル書き込むが終了しました。

 

Java

Posted by arkgame