要将Java编程视频游戏的状态保存在文本文件中(这是学校项目的练习,我不能使用序列化),我必须创建一个文本文件并用{{1然后用PrintWriter
读取它。
直到今天我才在这个目录中创建文件:
Scanner
现在我已经创建了项目的Jar存档,我意识到在运行程序时我无法在存档中创建文件。
我尝试使用这些目录创建一个文件,但它们都没有工作:
PrintWriter vPW;
try {vPW = new PrintWriter("./saves/" + vFileName + ".txt");}
catch (final IOException pExp) {
player.getGUI().println("Failed to create the file.");
return;
}
或
vPW = new PrintWriter(System.getProperty("user.home") + "/gamesaves/" + vNomFichier + ".txt")
我如何在系统的某处创建,编辑和阅读文本文件?
答案 0 :(得分: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
,则应用程序无权写入该文件夹(或者它不存在)。