我用这个来写一个文本文件。程序打开时工作正常,但当我关闭并重新打开并再次开始保存时,它会完全覆盖以前的数字。
private void writeNumbers(ArrayList<String> nums)
{
try
{
PrintStream oFile = new PrintStream("lottoNumbers.txt");
oFile.print(nums);
oFile.close();
}
catch(IOException ioe)
{
System.out.println("I/O Error" + ioe);
}
}
答案 0 :(得分:0)
您是否在启动程序时阅读此文本文件?如果您要写入的文件已存在,则始终会覆盖它。如果要将其添加到文件中,则需要在启动程序时读取它,将该数据保存到某处,然后将OLD数据+新数据写入文件。
虽然可能有一种更简单的方法,但这就是我过去的做法。
答案 1 :(得分:0)
写一个if语句来检查文件是否存在,如果它存在,你可以使用&#34; file.append&#34;否则会创建一个新的。
public class WriteToFileExample {
public static void main(String[] args) {
try {
String content = "This is the content to write into file";
File file = new File("/users/mkyong/filename.txt");
// if file doesnt exists, then create it
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(content);
bw.close();
System.out.println("Done");
} catch (IOException e) {
e.printStackTrace();
}
}
}
答案 2 :(得分:0)
你可以尝试这种追加模式
try {
Files.write(Paths.get("myfile.txt"), "the text".getBytes(), StandardOpenOption.APPEND);
}catch (IOException e) {
//exception handling left as an exercise for the reader
}
或
FileUtils.writeStringToFile(file, "String to append", true);