【发布时间】:2021-01-17 16:05:42
【问题描述】:
我编写了一个小游戏,游戏结束时也会显示高分。
最高分保存在一个整数变量中,简称为highscore。
现在我正在尝试将高分保存到一个文件中,以避免每次关闭应用程序时它都会被重置。
我的方法是使用 FileWriter,如下所示。游戏仍然运行顺利,一切都很好,我没有收到任何错误等,但它不会将任何内容放入文件中。
我只是不明白为什么。
感谢您的帮助。
private void saveHighscore() {
File highscoreFile = new File("C:\\Users\\FuadM\\Desktop\\Mueckenfang\\Highscore.txt");
try (FileWriter highscoreWriter = new FileWriter(highscoreFile)) {
if (!highscoreFile.exists()) {
highscoreFile.createNewFile();
}
highscoreWriter.write("" + highscore);
} catch (IOException e) {
e.printStackTrace();
}
}
编辑:我刚刚检查并在终端中收到此消息:
W/System.err: java.io.FileNotFoundException:
C:\Users\FuadM\Desktop\Mueckenfang\Highscore.txt: open failed: EROFS
(Read- only file system)
【问题讨论】:
-
您的代码对我有用。在我的 Mac 上,我得到了一个不错的新文件,里面有一个数字。是否从您的代码中打印了任何堆栈跟踪?如果是这样,请将其粘贴到问题中(很好地格式化为代码)。
-
@cutiko - 反斜杠是元字符,因此您需要一个额外的反斜杠来转义它。
-
@OleV.V.谢谢你的评论。我刚刚编辑了我的问题。
-
“打开失败:EROFS(只读文件系统)” - 您无法写入只读文件系统。
-
EROFS(增强型只读文件系统)是一个轻量级的只读文件系统…… (Wikipedia)。我不明白你的 C 盘(或只是其中的一部分)是如何只读的。
标签: java android android-studio file