Photo by
math_circus
Javaの基礎(CSV出力の手順)
JavaでリストからCSVへ出力する方法を共有させていただきます。
手順
①CSV化したいリストの作成
②CSVファイルの作成
③ヘッダーの作成
④CSVへ書き込み
⑤CSVファイルを閉じる
全体像
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
public class Main {
public static void main(String[] args) {
int[] idList = {1,2,3};
String[] nameList = {"田村", "多村", "太村"};
exportCsv(idList, nameList);
}
public static void exportCsv(int[] idList, String[] nameList){
try {
// 出力ファイルの作成
PrintWriter p = new PrintWriter(new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("C:\\Users\\user\\Desktop\\Java\\test.csv", false),"Shift-JIS")));
// ヘッダーを指定する
p.print("出席番号");
p.print(",");
p.print("名前");
p.println();
// 内容をセットする
for(int i = 0; i < idList.length; i++){
p.print(idList[i]);
p.print(",");
p.print(nameList[i]);
p.println(); // 改行
}
// ファイルに書き出し閉じる
p.close();
System.out.println("ファイル出力完了!");
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
上記は、出席番号と田村、多村、太村の名前をCSVに出力したコードとなります。
①CSV化したいリストの作成
int[] idList = {1,2,3};
String[] nameList = {"田村", "多村", "太村"}
//リストは データ型 変数名 = {値1, 値2,…}で作成できます。②CSVファイルの作成
PrintWriter p = new PrintWriter(new BufferdWriter(new OutputStreamWriter(new FileOutputStream("保存するファイルの指定", false), "エンコード")));FileOutputStream("C:\\Users\\user\\Desktop\\Java\\test.csv", false)
//ファイル名を指定して、上書きモード(false)か、追記モード(True)かを選択する。new OutputStreamWriter(new FileOutputStream("C:\\Users\\user\\Desktop\\Java\\test.csv", false),"Shift-JIS")
//そのままCSV化すると文字化けするのでOutputStreamWriterでエンコーディングする。new BufferedWriter(new OutputStreamWriter(new FileOutputStream("C:\\Users\\user\\Desktop\\Java\\test.csv", false),"Shift-JIS"))
//BufferedWriterで文字をバッファリングすることによって、文字の入出力を効率化させる。BufferedWriterを使わないと文字をprint()で呼び出して、変換して、書き込んで…という作業が効率悪くなるらしいです。③ヘッダーの作成
p.print("出席番号");
p.print(",");
p.print("名前");
p.println();
//,で区切って、ヘッダーを作成。ここも項目が多いとリストで対応しても良いかもしれないですね。
④CSVへ書き込み
for(int i = 0; i < idList.length; i++){
p.print(idList[i]);
p.print(",");
p.print(nameList[i]);
p.println();
}
//for文で各リストを1行ずつ書き込んでいく。一番最後のprintlnは改行のため。
⑤CSVファイルを閉じる
p.close();
以上でJavaでのリストからCSV化の手順となります。Pythonでも同じような記事を書いているのでぜひ、そちらもご参照ください。
参考にさせていただいた記事
