你好,有人可以帮我写一下用Java编写和读取文件中的对象吗?
这是我使用的代码,它让我觉得这个异常:java.io.NotSerializableException 这是我使用的代码:
public void zapisDat() {
sez = new SeznamLodi(seznamLodiPC, seznamLodiUser, seznamLodiZasahuHrac, seznamLodiZasahuPC);
try {
ObjectOutput out = new ObjectOutputStream(
new FileOutputStream("mujseznam.dat"));
out.writeObject(sez);
out.close(); // a je to. Jednoduché, že?
} catch (IOException e) {
System.out.println("Chyba při zápisu souboru : " + e);
}
}
public void nacteniDat() {
try {
// Načtení ze souboru
File file = new File("mujseznam.dat");
try (ObjectInputStream in = new ObjectInputStream(
new FileInputStream(file))) {
sez = (SeznamLodi) in.readObject();
}
} catch (ClassNotFoundException e) {
System.out.println("Nemohu najít definici třídy: " + e);
} catch (IOException e) {
System.out.println("Chyba při čtení souboru : " + e);
}
}
要求任何帮助
答案 0 :(得分:1)
要使对象Serializable,您必须实现Serializable接口,以便指示JVM序列化您自己的类的对象,该对象实现Serializable接口。
您的代码必须实现Serializable接口,如
public class < class_name > implements Serializable { }
答案 1 :(得分:0)
为了将Object写入ObjectOututStream,它必须正确支持序列化。
阅读serialization tutorial并使您的班级SeznamLodi
符合要求。
答案 2 :(得分:0)
正如错误所说,类(对象sez)没有实现Serializable接口。您可以参考java papers了解其工作原理。
答案 3 :(得分:0)
该对象应该实现要写入文件的Serializable接口。具体实现java.io.serializable。
import java.io.serializable
class SerializationBox implements Serializable {
....
答案 4 :(得分:0)
使此类可序列化
class SeznamLodi implements java.io.Serializeable
答案 5 :(得分:0)
如果SeznamLodi
是您自己的,请通过
Serializable
public class SeznamLodi implements Serializable {
}