Java 将ArrayList保存到文件
我有一个Arraylist,我想保存在一个文件中,以便下次在应用程序中使用。我读过几个地方,我可以用这些代码来做这件事,但它不起作用,它在打印出3后立即返回一个错误:Java 将ArrayList保存到文件,java,serialization,Java,Serialization,我有一个Arraylist,我想保存在一个文件中,以便下次在应用程序中使用。我读过几个地方,我可以用这些代码来做这件事,但它不起作用,它在打印出3后立即返回一个错误: private void savegame(){ try {System.out.println("1"); FileOutputStream preout = new FileOutputStream(new File("savedgame.ser")); System.out.prin
private void savegame(){
try {System.out.println("1");
FileOutputStream preout = new FileOutputStream(new File("savedgame.ser"));
System.out.println("2");
ObjectOutputStream out = new ObjectOutputStream(preout);
System.out.println("3");
out.writeObject(kortene);
System.out.println("4");
out.close();
System.out.println("5");
preout.close();
System.out.println("6");
output = new FileWriter(new File("saved game settings.txt"));
System.out.println("7");
output.write(Indstillinger.BilledeMappe+"\n"+Indstillinger.AntalKort+
"\n"+Indstillinger.AntalSpillere+"\n"+clicks+"\n"+Score);
System.out.println("8");
output.close();
System.out.println("game save success");
}catch (Exception e) {
System.out.println("game save failed");
}
“kortene”是这样创建的ArrayList:
public static ArrayList<Kort> kortene = new ArrayList<Kort>();
publicstaticarraylistkortene=newarraylist();
Kort是我制作的一个类,但我认为这与这个问题无关
我得到的错误是:java.io.NotSerializableException:java.awt.image.BuffereImage
但是我没有BuffereImage,我只是在每个类中都有一个普通的映像…我假设在您的类中声明的字段的类型是
image
,但是在运行时它被分配了一个对象BuffereImage
。因此,它无法将其写入输出文件,因为BuffereImage不可序列化。请相信编译器:如果它说它正在使用BuffereImage
将图像保存在内存中,那么这是真的。javadocs说它不可序列化
:
您可以将图像标记为瞬态,并在以后反序列化时从文件系统重新初始化它们。试试看