Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

書き込んだファイルにゴミが入る。。

Javaでファイルの書き込みを行うと、ファイルにゴミが入る問題で悩んでいます。

現在、以下のようなプログラムを作成しています。

1.CのプログラムからJavaを呼び出し、Java側である処理を行う。
 ↓
2.Java側で処理が終了した後、処理結果(OK,NG)をファイルに出力する。
 ↓
3.CのプログラムはJavaから出力されるファイルを監視し、出力されたらそのファイルを読み込み、処理結果ごとにログを出力する。

ここで、Java側から作成されるファイルにゴミが入ってしまうので、C側で正しい値を読み込むことができません。

秀丸などのエディタで開いてみると一見ちゃんと出力されているようなのですが、バイナリーエディタで開いてみたところ、次のように表示されました。
※ファイルの内容は、「OK(改行)」のみです。
「FE FF 00 4F 00 4B 00 0D 00 0A」

4F = O
4B = K

ですが、間に"00"(スペース)が入っているのが気になります。。

ファイルを作成しているロジックを以下に示します。
------------------------
                  String resPath = "D:\\Work\\RES_1.txt";
        try
        {
            File flOutput = new File(resPath);
            FileOutputStream outFileStream = new FileOutputStream(flOutput);
            OutputStreamWriter outWriter = new OutputStreamWriter(outFileStream , "UTF-16");
            BufferedWriter bufWriter = new BufferedWriter(outWriter);
            
            bufWriter.write ( "OK" );    // 応答ステータス書き込み
            bufWriter.newLine();        // 改行
    
            //Writerをclose
            bufWriter.flush();
            bufWriter.close();
            outWriter.close();
            outFileStream.close();
        }
        catch(Exception e)
        {
            System.out.println("");
        }

------------------------

ファイル書き込みの所だけ抜粋しています。

わかりにくい説明かもしれませんが、どなたかご指摘頂けないでしょうか。

よろしくお願い致します。

2

回答

79414

閲覧

2件の回答

評価

0

UTF-16で出力しているのだから、出力に間違いはありません。
どこがごみだと思うのですか?

評価

0

は・・・・!!!(@@;



すみません。

そうですよね・・・・・・・・・汗

バカ過ぎです。。ありがとうございました。

mioさんに教えて頂くまで気付きませんでした。
別のところからコピペしたロジックだったので・・。


お騒がせしました><

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。