![](/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.