見出し画像

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でも同じような記事を書いているのでぜひ、そちらもご参照ください。

参考にさせていただいた記事



いいなと思ったら応援しよう!