在Java中,序列化和反序列化是常用的數據轉換方法,可以將Java對象轉換成字節流或者將字節流轉換成Java對象,主要用于數據的傳輸和存儲。
Java序列化方法可以通過將Java對象轉換成字節流,保存在文件或者數據庫中,也可以通過網絡傳輸給其他進程。具體代碼如下:
// 序列化對象 FileOutputStream fos = new FileOutputStream("person.obj"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(person); oos.close(); fos.close();
Java反序列化方法是將字節流轉換為Java對象,可以從文件、網絡或者數據庫中讀取字節流,然后轉換成原本的Java對象。具體代碼如下:
// 反序列化對象 FileInputStream fis = new FileInputStream("person.obj"); ObjectInputStream ois = new ObjectInputStream(fis); Person person = (Person) ois.readObject(); System.out.println(person.toString()); ois.close(); fis.close();
需要注意的是,被序列化的Java類必須實現java.io.Serializable接口,否則無法進行序列化和反序列化操作。同時,如果序列化和反序列化的對象有引用關系,則必須要保證所有相關對象都被序列化和反序列化。