「Java」CSVファイルをBOM付きで作成するサンプル
構文
1.BOMを付ける
java.io.OutputStream に、BOM の3バイト EF , BB , BF を出力してからCSV BODYを出力するということで、
public static void push(OutputStream out) throws IOException{
out.write(new byte[]{ (byte)0xef,(byte)0xbb, (byte)0xbf });
}
2.public OutputStreamWriter(OutputStream out,String charsetName)
throws UnsupportedEncodingException
指定された文字セットを使うOutputStreamWriterを作成します。
使用例
package com.arkgame.bat;
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
public class Utf8BomDemo {
//ファイルパス
private static String DIR_PATH = "C:\\study\\arkgame\\";
//エンコード
private static String CHARSET = "UTF-8";
public static void main(String[] args) {
FileOutputStream fost = null;
OutputStreamWriter oswr = null;
BufferedWriter bfw = null;
try {
fost = new FileOutputStream(DIR_PATH + "test.csv");
// BOM の3バイト EF , BB , BF を出力してからCSV BODYを出力
fost.write(0xef);
// BB
fost.write(0xbb);
// BF
fost.write(0xbf);
oswr = new OutputStreamWriter(fost, CHARSET);
bfw = new BufferedWriter(oswr);
bfw.write("1234,山田太郎,ヤマダロウ,品川区,3-5-210");
bfw.write("\r");
bfw.write("4567,山田次郎,ヤマダロウ,品川区,3-5-302");
// ストリームをフラッシュ
bfw.flush();
// 出力ストリームをフラッシュ
oswr.flush();
fost.flush();
// ストリームを閉じる
bfw.close();
oswr.close();
fost.close();
System.out.println("BOMを付けるテキストファイルを作成した");
} catch (Exception e) {
e.printStackTrace();
}
}
}
実行結果
コンソールに下記を表示
BOMを付けるテキストファイルを作成した
test.csv(BOM付)
1234,山田太郎,ヤマダロウ,品川区,3-5-210
4567,山田次郎,ヤマダロウ,品川区,3-5-302