0

関数 "writeToFile()" は、文字列をテキスト ファイルに書き込むために迅速に呼び出されます。しかし、ファイルにテキストがありませんでした。

コード:

 public class MyClass {
        private File data_file = new File("data_from_java.txt");
        public void writeToFile(String str){
        try {
            FileOutputStream fos= new FileOutputStream(this.data_file, true);
            System.out.print(str);  // there is text shown in terminal 
            fos.write(str.getBytes());
            fos.flush();
            fos.close();   // why file donesn't have text 
        }catch(Exception ex) {
            System.out.println(ex.getMessage());
        }
    }
4

3 に答える 3

0

このコードのチャンクを使用してみてください。

final BufferedWriter fos = new BufferedWriter(new FileWriter(data_file, true));
System.out.print(str);
fos.write(str);
fos.flush();
fos.close();

予想とは別の場所にテキストファイルが見つかりましたが、うまくいきました。多分少しの検索はすでに行うでしょうか?

于 2012-11-20T09:23:57.980 に答える
0

あなたのコードfos.write(str.getBytes());では、この行は問題を引き起こしているようです... write() メソッドは引数としてバイトを受け取ります..バイトの配列を与える..その行を

buf = str.getBytes();
for (int i=0; i < buf.length; i += 2) { 
f0.write(buf[i]);
}
于 2012-11-20T09:27:22.570 に答える
0

raw バイトを書き込むと、文字エンコーディングで問題が発生する可能性があります。Jon Skeetが言ったように、ライターを使用してください...

try {
    FileWriter writer = new FileWriter(data_file, true);
    writer.write(str);
} catch(IOException e) {
    // oh no!
} finally {
    writer.close();
}
于 2012-11-20T09:20:39.333 に答える