java utf-8 で ファイル出力
【やりたい事】
ファイルを読み込んで、改行コードCRLFをLFに変換して、空白行は削除して、「正常終了しました。」は削除。
文字コードUTF8で出力したい。
【問題】
UTF-8で指定してるのに、Shift_JISで出力される。
【入力ファイル】
ファイル名:test.tsv
文字コード:UTF-8
改行コード:CRLF
************************
test test1
1 2
1 3
正常終了しました。
************************
【現在のソース】
import java.io.*;
public class writeFile {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
try {
//(1)FileReaderオブジェクトinFileを生成
FileReader inFile = new FileReader("test.tsv");
//(2)FileWriterオブジェクトoutFileを生成
FileWriter outFile = new FileWriter("test_lf.tsv");
//(3)BufferedReaderオブジェクトinBufferを生成
BufferedReader inBuffer = new BufferedReader(inFile);
//(4)BufferedWriterオブジェクトoutBufferを生成
BufferedWriter outBuffer = new BufferedWriter(outFile);
String line;
int cnt=0;
//(5)読み込みデータがなくなるまで、読み込み
while ((line = inBuffer.readLine()) != null) {
//(6)データの書き込み処理
if (line.equals("")){
cnt=cnt+1;
}else{
if(cnt<=1){
outBuffer.write(line+"\n");
}
}
}
outBuffer.flush(); //(7)バッファをフラッシュ
inBuffer.close(); //(8)読み込みストリームのクローズ
outBuffer.close(); //(9)書き込みストリームのクローズ
} catch (IOException e) {
}
try { //(1)
//(2)FileInputStreamオブジェクトの生成
FileInputStream abc = new FileInputStream("test_lf.tsv");
//(3)FileOutputStreamオブジェクトの生成
FileOutputStream xyz = new FileOutputStream("test_lf_utf.tsv");
//(4)InputStreamReaderオブジェクトの生成
InputStreamReader in =
new InputStreamReader(abc, "Shift_JIS");
//(5)OutputStreamWriterオブジェクトの生成
OutputStreamWriter out =
new OutputStreamWriter(xyz, "UTF-8");
int contents; //(6)
//(7)読み込むデータがなくなるまで読み込み
while ((contents = in.read()) != -1) {
//(8)書き込むデータがなくなるまで書き込み
out.write(contents);
}
in.close(); //(9)読み込みストリームを閉じる
out.close(); //(10)書き込みストリームを閉じる
} catch(IOException e) {
}
}
}
【出力結果】
ファイル名:test_lf.tsv
文字コード:Shift_JIS
改行コード:LF
************************
test test1
1 2
1 3
************************
ファイル名:test_lf_utf.tsv
文字コード:Shift_JIS
改行コード:LF
************************
test test1
1 2
1 3
************************
本当に困っています。
もう二日、はまってます。
ご教授願います。
お礼
早々と回答いただき感謝しています。 言葉足らずですみません。一般的な補助金制度はある程度知ってるのですが 仰るとおり期間があったり、金額が少なかったりと…。 聞きたかった事は、質問に書いた通り、世界を変えるほどの、ノーベル賞など目でもない ほどの発明があった場合、国への直談判というか、役人さんに訴えてそんなのが通じる事は ないのかなぁと…。 特許取れない時点でyoutubeに流すと特許申請自体が無理になるし、また秘密が…。 専門家が見るとヒントを与えそうで…。