将文本附加到已存在的文件的某个特定位置
我正在为一个项目编写游戏,并且顺利进行,但我遇到了一个小问题,它使用文本文件保存在程序后解锁了哪些成就关闭,我不知道如何编辑它。尽管我可以使用一些检查来重写整个事物,以查看已解锁的内容,然后使用if语句将Y重写为重写,然后替换它,但这需要大量的代码行,并且不如现场写作成果,并且可能是,虽然没有那么严重,但更耗费资源,而不是将文本替换为期望的行,放入文本文件中。将文本附加到已存在的文件的某个特定位置
因此给出这个结构(数字附于成就,下面的字母告诉我的程序是否解锁,N表示否意味着是)如果我解锁成就2例如,我将如何搜索文本文件看起来像这样...
01
N
02
N
03
N
04
N
05
N
06
N
07
N
08
N
09
N
10
N
11
N
12
N
为02然后编辑下面的行从N到Y,使用Java 1.8代码。 (文件名为Achievements.txt,我有一个名为longPath变量,它是游戏的存储位置的动态目录,所以示例代码的目的目录将作为
(longPath+"\\Achievements.txt")
前。
工作Scanner scan = new Scanner(new File(longPath+"\\Achievements.txt"));
是我使用来确定代码的成就解锁代码(扫描代码工作就好了BTW)开始
编辑:重写文件是不是很feasable,我去现在睡觉,所以我会明天早上在〜8:10 Ester响应n次
试着看一下这篇文章:https://www.mkyong.com/java/how-to-append-content-to-file-in-java/
根据它,当你实例化一个新的FileWriter类,有一个构造函数,你可以为了设置一个布尔值,以“真”为它追加到一个文件而不是覆盖它。
例如:
File file = new File(longPath+"\\Achievements.txt");
FileWriter fw = new FileWriter(file, true);
fw.write("This string should append to the end of the file");
我当时无法对此进行测试。
感谢您的时间,但这正是我一直在寻找的。我需要能够在文件中间运行:|如果你知道如何做到这一点,那就是我所需要的。 @一个。 CUCCI –
的例子吗? –
什么都不是,因为我发现的所有内容都是将文本添加到文件末尾,对我来说,例如,删除一切到02,重写几乎与完全重写文件一样糟糕,并在每次解锁成果时替换它@Scary Wombat –
你为什么要保存未解锁的成就。你可以简单地存储只有解锁的文件,如果你没有在文件中找到未解锁的成就。 –