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