「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