在保存游戏时,我想添加int
s,String
s,boolean
等等,因为这是我想要保存的游戏中的所有内容。唯一的问题是,我能找到的只有how to add text to files?这里没有任何内容有助于找到如何在非文本文件中添加数字和字母。
现在,这是我的代码:
private void saveGame() {
try {
//Whatever the file path is.
File statText = new File("F:/BLAISE RECOV/Java/Finished Games/BasketBall/BasketballGame_saves/Games");
FileOutputStream is = new FileOutputStream(statText);
} catch (IOException e) {
System.err.println("Problem writing to the file statsTest.txt");
}
}
答案 0 :(得分:2)
您可以创建一个可序列化的对象并将您的信息保存在该对象中,并将您的文件保存为.ser
可序列化文件中的对象
import java.io.Serializable;
public class Save implements Serializable
{
private int i ;
private String s;
private boolean b;
public Save(int i, String s, boolean b)
{
this.i = i;
this.s = s;
this.b = b;
}
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
public String getS() {
return s;
}
public void setS(String s) {
this.s = s;
}
public boolean isB() {
return b;
}
public void setB(boolean b) {
this.b = b;
}
}
你可以像这样保存对象:
public static void main(String[] args)
{
try
{
File file = new File("C:\\Users\\Parsa\\Desktop\\save.ser");
FileOutputStream output = new FileOutputStream(file);
ObjectOutputStream objectOutput = new ObjectOutputStream(output);
Save save = new Save(10,"aaa",true);
objectOutput.writeObject(save);
objectOutput.flush();
objectOutput.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
答案 1 :(得分:0)
也许你正在寻找二进制文件,就像在这里: Java: How to write binary files?
您可以将数据直接写入磁盘作为字节。 另一种方法是将整数转换为像
这样的字符int integer = 65;
char number = (char) integer; // outputting this will give you an 'A'
...
int loadedInt = (int) number; // loadedInt is now 65
请参阅https://www.cs.cmu.edu/~pattis/15-1XX/common/handouts/ascii.html作为char-to-int转换表。
除此之外,您必须在将对象写入文件之前将其转换为字符串(或任何其他类型的串行表示形式)。