为什么字符串没有写入文件?

时间:2012-11-20 09:11:08

标签: java file fileoutputstream

将快速调用函数“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());
        }
    }

3 个答案:

答案 0 :(得分:0)

写入原始字节可能会导致字符编码出现问题。正如Jon Skeet所说,使用作家......

try {
    FileWriter writer = new FileWriter(data_file, true);
    writer.write(str);
} catch(IOException e) {
    // oh no!
} finally {
    writer.close();
}

答案 1 :(得分:0)

尝试使用这段代码:

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

虽然我发现我的文本文件位于与预期不同的地方,但它对我有用。也许可以进行一些搜索?

答案 2 :(得分:0)

在你的代码fos.write(str.getBytes());中,这一行会导致问题...... write()方法将一个字节作为参数... u r给出一个字节数组。所以将该行改为

buf = str.getBytes();
for (int i=0; i < buf.length; i += 2) { 
f0.write(buf[i]);
}