广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州什么是Java可外化对象序列化?_北大青鸟IT学校

作者:邓华发布时间:2021-04-09分类:Java技术浏览:904


导读:之前惠州北大青鸟老师给大家分享了Java对象序列化的知识,那你知道什么是Java可外化对象序列化吗?接下来我们一起来学习一下什么是Java可外化对象序列化。

之前惠州北大青鸟老师给大家分享了Java对象序列化的知识,那你知道什么是Java可外化对象序列化吗?接下来我们一起来学习一下什么是Java可外化对象序列化。

要序列化和反序列化可外部化对象,请实现Externalizable接口。

import java.io.Externalizable;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInput;import java.io.ObjectInputStream;import java.io.ObjectOutput;import java.io.ObjectOutputStream;class PersonExt implements Externalizable {  private String name = "Unknown";  private String gender = "Unknown";  private double height = Double.NaN;  public PersonExt() {
 }  public PersonExt(String name, String gender, double height) {
   this.name = name;
   this.gender = gender;
   this.height = height;
 }  public String toString() {    return "Name: " + this.name + ", Gender:   " + this.gender + ",  Height: "
       + this.height;
 }  public void readExternal(ObjectInput in) throws IOException,
     ClassNotFoundException {
   this.name = in.readUTF();
   this.gender = in.readUTF();
 }  public void writeExternal(ObjectOutput out) throws IOException {
   out.writeUTF(this.name);
   out.writeUTF(this.gender);
 }
}public class Main {  public static void main(String[] args) {
   PersonExt p1 = new PersonExt("John", "Male", 6.7);
   PersonExt p2 = new PersonExt("Wally", "Male", 5.7);
   PersonExt p3 = new PersonExt("Katrina", "Female", 5.4);    File fileObject = new File("personext.ser");    try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(
       fileObject))) {
     oos.writeObject(p1);
     oos.writeObject(p2);
     oos.writeObject(p3);

     System.out.println(p1);
     System.out.println(p2);
     System.out.println(p3);
   } catch (IOException e1) {
     e1.printStackTrace();
   }

   fileObject = new File("personext.ser");    try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(
       fileObject))) {

     p1 = (PersonExt) ois.readObject();
     p2 = (PersonExt) ois.readObject();
     p3 = (PersonExt) ois.readObject();      // Let"s display the objects that are read      System.out.println(p1);
     System.out.println(p2);
     System.out.println(p3);      // Print the input path      System.out.println("Objects were  read   from  "
         + fileObject.getAbsolutePath());
   } catch (Exception e) {
     e.printStackTrace();
   }
 }
}

上面的代码生成以下结果。

Name:John,Gender:   Male, Height:6.7

Name:Wally,Gender:   Male, Height:5.7

Name:Katrina,Gender:   Female, Height:5.4

Name:John,Gender:   Male, HeightNaN

Name:Wally,Gender:   Male, Height:NaN

Name:Katrina,Gender:   Female, Height:NaN

Objects were read  from E:\Java_Dev\WEB\release\java2sIDE\generated\a

什么是Java可外化对象序列化?相信大家应该知道了吧!想了解更多关于JAVA的知识吗?可以来惠州北大青鸟新方舟校区了解一下。

Java17.jpg

Java


标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表