Java 读取数据以从文本文件加载游戏
嗨,我正在做一个游戏,当我的保存按钮被点击时,它会保存几个状态,例如:名称,总分 我就是这样保存它的:Java 读取数据以从文本文件加载游戏,java,swing,file,save,load,Java,Swing,File,Save,Load,嗨,我正在做一个游戏,当我的保存按钮被点击时,它会保存几个状态,例如:名称,总分 我就是这样保存它的: public static void save() { fileName = new File("Saved Game"); try { fw = new FileWriter(fileName,true); } catch (IOException e) { e.printStackTrace
public static void save()
{
fileName = new File("Saved Game");
try
{
fw = new FileWriter(fileName,true);
}
catch (IOException e)
{
e.printStackTrace();
JOptionPane.showConfirmDialog(frame, e.toString() + "\nFail to save game.",
"Saved", JOptionPane.DEFAULT_OPTION);
}
f = new Formatter(fw);
f.format("\n%s\t",level);
f.format("\t%s\t", nameLabel.getText());
f.format("\t%s\t\t", updatedLabel.getText());
f.close();
JOptionPane.showConfirmDialog(frame, "Saving was successful.", "Game Saved",
JOptionPane.DEFAULT_OPTION);
}
我想加载一个游戏,而不是每次都开始一个新游戏。我可以从文本文件中读取数据并将其打印到屏幕上,但不知道如何将这些数据加载到标签(例如名称)中以开始游戏。有什么想法吗
到目前为止,我加载文本文件的代码是:
public static void readFromFile (String fileName) throws IOException
{
FileReader fr = new FileReader(fileName);
BufferedReader br = new BufferedReader(fr);
System.out.println(br.readLine());
br.close();
}
我在单击“加载”按钮时调用此方法。任何想法都将不胜感激。使用readLine()循环每一行,并将其保存到ArrayList中。因为是您创建了文本文件,所以当您从数组中检索值时,您知道每行中应该包含什么
BufferedReader in = new BufferedReader(new FileReader("path/of/text"));
String str;
List<String> list = new ArrayList<String>();
while((str = in.readLine()) != null){
list.add(str);
}
BufferedReader in=new BufferedReader(new FileReader(“path/of/text”);
字符串str;
列表=新的ArrayList();
而((str=in.readLine())!=null){
添加(str);
}
将单个保存文件读入工作内存不需要阵列列表。由于您向方法写入文件,因此隐式地知道数据在哪里,因此如果您的write函数看起来像这样(这有点像伪代码,但它可以理解这一点)
使用foo
作为角色类实例的名称。您的read函数如下所示
bar.name = inFile.getLine()
bar.health = inFile.getLine()
bar.level = inFile.getLine()
当然,您需要首先将bar
构建为类的空实例,以及执行所有相关的文件IO设置和内部清理,并且不要忘记从读取函数返回bar
。执行此操作的常用方法是使用从文本文件读取键值对。在本部分中,属性文件用于初始化AlphaComposite
规则的词汇表。在JComboBox
中显示一组规则。你也可以使用属性初始化实例中的缺省值,如引用的游戏中所示。Read。Huh,我不知道,当我第一次从输入文件中读取时,我在C++中工作,所以我没有访问java的广泛库。很高兴知道这一点,但阅读本文的人也要注意,除非您打算永远只使用Java,否则在使用库之前,请确保您知道如何在没有库的情况下解决问题,因为Java中基本的东西在其他语言中通常是完全不存在的toString()
是我最喜欢的例子。@MitchellCarroll:我试图利用这些库,我发现Java设计在其他地方为我自己的设计提供了信息。在上下文中处理OP问题的荣誉。同样,当我做C++时,我总是确保向我创建的每个对象添加一个<代码> toStReg()/Cuff>函数。利用Java的库可以极大地提高您在使用它时的工作效率,但是依赖它们(Java是我真正致力于学习的第一种语言)可能会成为其他语言的障碍,尤其是c/c++
bar.name = inFile.getLine()
bar.health = inFile.getLine()
bar.level = inFile.getLine()