每次进入文本字段时,我都有一个用于写入文件的代码。但是在该过程之后,当再次进行输入时,文件被重写而不是继续文件的条目,因此我丢失了先前的数据。如何重写现有的,以便以后即使关闭应用程序也可以读取这些数据。
给出了写过程的代码:
public boolean writeToFile(String dataLine) {
dataLine = "\n" + dataLine;
try {
File outFile = new File(filepath);
dos = new DataOutputStream(new FileOutputStream(outFile));
dos.writeBytes(dataLine);
dos.close();
} catch (FileNotFoundException ex) {
return (false);
} catch (IOException ex) {
return (false);
}
return (true);
}
任何人都可以根据需要对代码进行更改并将其发布给我。
答案 0 :(得分:2)
[File API for FileOutputStream] [1]声明:
public FileOutputStream(String name,
boolean append)
throws FileNotFoundException)
创建输出文件流以写入具有指定名称的文件。如果第二个参数为true,则字节将写入文件的末尾而不是开头。创建一个新的FileDescriptor对象来表示此文件连接。
因此,您的代码应如下所示:
public boolean writeToFile(String dataLine) {
dataLine = "\n" + dataLine;
try {
File outFile = new File(filepath);
dos = new DataOutputStream(new FileOutputStream(outFile,true));
dos.writeBytes(dataLine);
dos.close();
} catch (FileNotFoundException ex) {
return (false);
} catch (IOException ex) {
return (false);
}
return (true);
}
答案 1 :(得分:1)
答案 2 :(得分:1)
使用构造函数FileOutputStream(File file, boolean append)
和append = true
答案 3 :(得分:0)
见[http://download.oracle.com/javase/6/docs/api/java/io/FileOutputStream.html#FileOutputStream(java.io.File,boolean)] [1]
另请注意,您应该使用FileWriter来编写文本。 FileOutputStream用于二进制数据。