Java序列化是指將對象轉換成二進制流,以便在網絡上傳輸或持久化存儲。Java反序列化則是將二進制流轉換成對象。
Java序列化使用ObjectOutputStream類將對象轉換成二進制流,代碼如下:
try { FileOutputStream fileOut = new FileOutputStream("employee.ser"); ObjectOutputStream out = new ObjectOutputStream(fileOut); out.writeObject(employee); out.close(); fileOut.close(); } catch (IOException i) { i.printStackTrace(); }
在代碼中,我們創(chuàng)建了一個文件輸出流和一個對象輸出流,將員工對象employee寫入文件employee.ser中。需要注意的是,被序列化的對象需要實現Serializable接口。
Java反序列化使用ObjectInputStream類將二進制流轉換成對象,代碼如下:
try { FileInputStream fileIn = new FileInputStream("employee.ser"); ObjectInputStream in = new ObjectInputStream(fileIn); Employee employee = (Employee) in.readObject(); in.close(); fileIn.close(); } catch (IOException i) { i.printStackTrace(); } catch (ClassNotFoundException c) { c.printStackTrace(); }
在代碼中,我們創(chuàng)建了一個文件輸入流和一個對象輸入流,從文件employee.ser中讀取二進制流并將其轉換成員工對象employee。需要注意的是,被反序列化的對象需要實現Serializable接口,并且類的class文件必須存在。
上一篇css3+文字打斷
下一篇java序列化定義和實現