当前位置: 首页 > 知识库问答 >
问题:

PrintWriter:读写同一个文件-文件在再次打开之前不会被保存

尤夕
2023-03-14

.

而不是这样,发生的是:

第一次调用之前:#empty#empty#

public static void main(String[] args) throws IOException {

        SaveGame.saveState("adventure/save/s1.save", new Adventure(), 0);

        SaveGame.saveState("adventure/save/s2.save", new Adventure(), 1);

        SaveGame.saveState("adventure/save/s3.save", new Adventure(), 2);
        }
public class SaveGame {

public static void saveState(String fileName, Adventure a, int slot) throws IOException {   

    //UPDATE MASTER SAVE FILE save.txt
    String[] save = new String[3]; 

    try {
        Scanner openSave = new Scanner(new FileReader("/adventure/save/save.txt"));
        openSave.useDelimiter("#");
        save[0] = openSave.next();
        save[1] = openSave.next();
        save[2] = openSave.next();
        openSave.close();
    }
    catch (FileNotFoundException e) {
        save[0] = "EMPTY";
        save[1] = "EMPTY";
        save[2] = "EMPTY";
    }

    save[slot] = "newString"; //change the CURRENT save in the given slot to the new

    PrintWriter updater = new PrintWriter(new FileWriter("adventure/save/save.txt"));
    updater.println("#" + save[0] + "#" + save[1] + "#" + save[2]);
    updater.flush();
    updater.close();

共有1个答案

耿联
2023-03-14

它完全按照你说的做。每次调用saveState时,将新实例化数组的单个索引设置为“NewString”,并显示该数组。

编辑

对不起,我看错你的代码了。

 类似资料:
  • 问题内容: 我正在尝试使小程序以非常频繁的时间间隔(每秒几次)读取本地文件系统(用户计算机)上的文件,然后通过javascript将文件的内容提供给网页。 小程序需要读取的文件由用户计算机上的程序进行高频更新。我担心的是,如果小程序在文件正在更新的过程中从文件中读取数据,可能会发生什么。 我不知道这有多大可能,但是如果确实有问题,有没有办法在读取文件之前确保当前未将其写入文件? 问题答案: 我对此

  • 问题内容: 我正在尝试在同一CSV文件上进行读写: 我的csv文件是: 所以基本上,如果我的价值是我想用代替。上面的代码给了我空的CSV文件。 问题答案: 您应该使用其他输出文件名。即使您希望名称相同,也应该使用一些临时名称并最终重命名文件。 当您以“ w”(或“ wb”)模式打开文件时,此文件被“清除”-整个文件内容消失。的Python文档说: …“ w”仅用于写入(具有相同名称的现有文件将被删

  • 我创建了一个内容为“Hello”的文本文件,我试图从文件中读取这些字符,并再次将其写回相同的文件。 我尝试使用调试器来找出问题,调试器显示在while循环的第一次迭代时被分配。然后,我在检查文件内容时一步一步地执行代码,发现在执行语句之后,“hello”关键字就从文件中删除了。 我最初认为这是由于和指向同一个文件,所以为了执行安全,JVM对文件进行了某种程度的“锁定”? 所以我试着交换这两行: 结

  • 问题内容: 如果您读取整个文件时,文件句柄是否一直打开直到脚本退出?有没有更简洁的方法来读取整个文件? 问题答案: 这个问题的答案在某种程度上取决于特定的Python实现。 要了解所有内容,请特别注意实际对象。在您的代码中,该对象仅在表达式中被提及一次,并且在调用返回后立即变得不可访问。 这意味着文件对象是垃圾。剩下的唯一问题是“垃圾收集器何时收集文件对象?”。 在使用引用计数器的CPython中

  • 我已经安装了 Pug(前玉)插件并添加了一个新的文件模板 创建新的.pug文件时,PhpStorm会创建一个我无法打开的文件。 我已经按照官方页面上的说明进行操作,但它没有帮助。 我错过了哪一步?任何帮助都是巨大的! 编辑: 我已经卸载了Pug插件,使缓存失效并重启。然后删除了我已经创建的模板,因为pstorm创建了一个名为“Pug/Jade File”的新模板。然后,我从上下文菜单中创建了一个新

  • 问题内容: 我正在编写一种自动提款机程序,该程序会将数据输出到文件中(是​​的,我知道它不是英语,但这不是重点),并且遇到了错误。 当我尝试使用它不起作用时,我不知道为什么。 for循环有效,但各行。这真的让我感到困惑!我已经尝试过)并且得到了,但这仍然无济于事。 有人可以解释我在做什么错吗? 问题答案: 为什么要在writeToFile调用中打开和关闭流?您不应该在for循环之前在writeFo