Java 我需要关于创建保存系统的建议?

Java 我需要关于创建保存系统的建议?,java,save,Java,Save,到目前为止,我正在做一个你玩的游戏,然后每五秒钟它就会拯救游戏。到目前为止,我有一个ok保存系统。如果你有100块木头,30块面包和0块泥土,那么它会保存到一个文件“10030”。每次启动应用程序时,它都会通过以下方式加载保存: public static void loadSave(File loadPath){ try{ Scanner loadScanner = new Scanner(loadPath); while(loadScanner.hasNext()

到目前为止,我正在做一个你玩的游戏,然后每五秒钟它就会拯救游戏。到目前为止,我有一个ok保存系统。如果你有100块木头,30块面包和0块泥土,那么它会保存到一个文件“10030”。每次启动应用程序时,它都会通过以下方式加载保存:

public static void loadSave(File loadPath){

    try{
    Scanner loadScanner = new Scanner(loadPath);

    while(loadScanner.hasNext()){
        for (int i = 0; i < ldStr.length; i++) {
            ldStr[i] = loadScanner.nextInt();
            if(i == 7){
                Print();
            }
        }
    }


    loadScanner.close();
    }catch(Exception e){}
}
不管怎样,我只是想知道这是否有效。另外,如果我要创建一个登录系统,我如何将这些值保存到它们的名称中(为每个玩家创建一个单独的文件就可以了)


另外,我不打算使用SQL为每个玩家创建一个单独的文件,我会使用这个:

import java.io.File;
import java.io.IOException;

public class Login {

static String   playerName;

public static void main(String[] args) {
    playerName = "John"; //set playerName to the name of the player
    createFile();
}

public static void createFile() {

    File f = new File("res/" + playerName + ".txt");
    if (!f.exists())
        try {
            f.createNewFile();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

}

public static String getSavePath(){
        return "res/" + playerName + ".txt";


}

}
“res/”
+playerName+“.txt”
替换为保存文件的文件夹(或路径)的名称
应该创建文件。

@mitchWheat如果你说我怎么拼写错了,我是偶然做的,懒得去修复它。答案取决于你想做多少工作,例如,我可能使用XML文件来实现同样的事情,通常更容易解析,但是,启动和工作所需的开销并不是微不足道的,序列化HashMap或自定义类将很容易在以后实现和扩展。但是这个问题对于StackOverflow来说是离题的。您应该征求关于@Unsible的一般建议,或者让人们在@Unsible上查看您的内容-在任何情况下,永远不要使用java序列化来实现持久性(=长期存储)。这对Gamedev.SE将来的重构(除非你真的知道自己在做什么)是非常不友好的。。。。。。。。。。
import java.io.File;
import java.io.IOException;

public class Login {

static String   playerName;

public static void main(String[] args) {
    playerName = "John"; //set playerName to the name of the player
    createFile();
}

public static void createFile() {

    File f = new File("res/" + playerName + ".txt");
    if (!f.exists())
        try {
            f.createNewFile();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

}

public static String getSavePath(){
        return "res/" + playerName + ".txt";


}

}