![](/img/trans.png)
[英]Use of Serializable other than Writing& Reading object to/from File
[英]Reading/writing object from file
您好,有人可以帮助我编写和读取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);
}
}
感谢任何帮助
要使您的对象可序列化,则必须必须实现Serializable接口,以便指示JVM对您自己的实现Serializable接口的类的对象进行序列化。
您的代码必须实现Serializable接口,如下所示:
public class < class_name > implements Serializable { }
为了将Object写入ObjectOututStream,它必须正确支持序列化。
阅读序列化教程 ,并使您的SeznamLodi
类符合要求。
正如错误所言,类(对于对象sez)未实现Serializable接口。 您可以参考Java论文以了解其工作原理。
该对象应实现要写入文件的Serializable接口。 具体实现java.io.serializable。
import java.io.serializable
class SerializationBox implements Serializable {
....
使此类可序列化
class SeznamLodi implements java.io.Serializeable
如果SeznamLodi
是您自己的,请将其Serializable
SeznamLodi
public class SeznamLodi implements Serializable {
}
阅读有关Serialization#Java的信息 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.