「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)

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

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

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

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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ファイル書き込むが終了しました。");
}
}
}
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ファイル書き込むが終了しました。"); } } }
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」に以下の内容を出力します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
10001,山田 太郎,東京
20002,山城 次郎,大阪
10001,山田 太郎,東京 20002,山城 次郎,大阪
10001,山田 太郎,東京
20002,山城 次郎,大阪

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
1行目の内容を書き込み
リストの内容がクリアされます
2行目の内容を書き込み
CSVファイル書き込むが終了しました。
第1行目の内容を書き込み リストの内容がクリアされます 第2行目の内容を書き込み CSVファイル書き込むが終了しました。
第1行目の内容を書き込み
リストの内容がクリアされます
第2行目の内容を書き込み
CSVファイル書き込むが終了しました。

 

Java

Posted by arkgame