创建/写入/读取Jar归档文件外部的文本文件



要将Java编程的电子游戏状态保存在文本文件中(这是学校项目的练习,我不能使用序列化),我必须创建一个文本文件,并使用PrintWriter写入其中,然后使用Scanner读取。

直到今天,我一直在这个目录下创建文件:

PrintWriter vPW;
try {vPW = new PrintWriter("./saves/" + vFileName + ".txt");}
catch (final IOException pExp) {
        player.getGUI().println("Failed to create the file.");
        return;
}

现在我已经为我的项目创建了一个Jar归档文件,我意识到我不能在运行程序时在归档文件中创建文件。

我试着用这些目录创建一个文件,但是它们都不工作:

vPW = new PrintWriter(System.getProperty("user.home") + "/gamesaves/" + vNomFichier + ".txt")

vPW = new PrintWriter("C:/saves/" + vFileName + ".txt")

我如何在系统的某个地方创建、编辑和读取文本文件?

您可能需要先创建文件夹:

final File folder = new File(System.getProperty("user.home"), "gamesaves");
if(!folder.exists() && !folder.mkDirs()) {
   //failed to create the folder, probably exit
   throw new RuntimeException("Failed to create save directory.");
}
final File myFile = new File(folder, vNomFichier + ".txt");
final PrintWriter pw = new PrintWriter(myFile);

你也可以检查你的应用程序是否被允许写你要求它与folder.canWrite()。如果返回false,则应用程序没有权限写入该文件夹(或者它不存在)。

最新更新