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

时间:2016-01-09 03:59:00

标签: java xml save yaml

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

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

另外,为了保存游戏数据,读/写的文件是什么?我之前使用过YAML(我是Minecraft Bukkit开发人员),但我知道XML(我以前没用过它)。所以我只是想知道,除了上面关于保存的问题之外,还有什么文件可供使用以及如何使用Java。

请帮忙。

2 个答案:

答案 0 :(得分:0)

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

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

至于您要将文件保存为的格式 - 无论您喜欢什么。听起来像你正在使用一个关键:数据的价值结构,所以你为什么不看看Java的专有文件:http://www.avajava.com/tutorials/lessons/how-do-i-read-a-properties-file.html

答案 1 :(得分:0)

保存数据的方法很简单。拿这个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坐标,健康状况或者存储在其中的内容。您可以使用加密形式或其他方式来防止用户篡改他的数据保存。