0

要将 Java 编程视频游戏的状态保存在文本文件中(这是一个学校项目的练习,我不能使用序列化),我必须创建一个文本文件并PrintWriterScanner.

直到今天我还在这个目录中创建文件:

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")

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

4

1 回答 1

2

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

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则应用程序无权写入该文件夹(或它不存在)。

于 2013-05-11T13:41:37.263 回答