Java 我需要关于创建保存系统的建议?
到目前为止,我正在做一个你玩的游戏,然后每五秒钟它就会拯救游戏。到目前为止,我有一个ok保存系统。如果你有100块木头,30块面包和0块泥土,那么它会保存到一个文件“10030”。每次启动应用程序时,它都会通过以下方式加载保存: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()
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";
}
}