将游戏数据本地保存到文件夹(什么文件?)- Java

Save Game Data Locally to Folder (What file?) - Java

我一直在寻找这个问题的答案,但我找不到任何我想要的东西,所以我决定在这里问!

我正在制作 Java 游戏。我正在尝试将信息本地保存给游戏用户,例如他们的应用程序支持或文档中的文件夹或其他任何东西(有点像 Minecraft)。例如,我正在尝试保存信息,例如他们离开的地方,如果这是他们第一次玩,等等。我想知道如何在那个人的计算机上的某个地方创建一个文件夹,然后在其中保存一个文件。 PC 和 Mac 用户有什么不同吗?我该怎么做呢?如何将文件保存在用户的计算机上?

还有,什么是read/write保存游戏数据的好文件?我以前使用过 YAML(我是 Minecraft Bukkit 开发人员),但我知道 XML(不过我以前没用过)。所以我只想知道,除了上面关于保存的问题之外,Java.

使用什么文件以及如何使用

请帮忙。

如何使用 Java 创建文件夹:How to create empty folder in java?

扫描器,一个class可以从文件中读取IO:https://docs.oracle.com/javase/8/docs/api/index.html?java/util/Scanner.html

至于您希望将文件保存为哪种格式 - 任何您喜欢的格式。在我看来,您正在使用 key:value 数据结构,那么为什么不看一下 Java 的属性文件:http://www.avajava.com/tutorials/lessons/how-do-i-read-a-properties-file.html

保存数据的方法很简单。以这个 printwriter 为例。

    File outFile = new File ("output.txt");
    FileWriter fWriter = new FileWriter (outFile);
    PrintWriter pWriter = new PrintWriter (fWriter);
    pWriter.println ("10, 10"); //x and y
    pWriter.println ("100"); //health
    pWriter.close();

您真正需要做的就是将信息保存在某种文件中以备后用,这里,我使用了普通的 tecxt 文件。

然后您使用扫描仪读取您保存的数据并将其分配给您的变量。

File inFile = new File ("input.txt");

Scanner sc = new Scanner (inFile);
while (sc.hasNextLine())
{
  String line = sc.nextLine();
  System.out.println (line); //assign variables here 
}
sc.close();

虽然这是一种保存数据的有效方式,但很容易被篡改。普通玩家将能够编辑和更改他的 x、y 坐标、健康状况或您在其中存储的任何内容。您可以使用密码学形式或其他方式来防止您的用户篡改他的数据保存。