public static void main(String[] args) { try { ByteArrayOutputStream out = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(out); oos.writeObject(new Person("sss", "aaaa")); byte[] array = out.toByteArray(); System.out.println(array.length + " " + new String(array)); ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(array)); ois.readObject();//通过读取流 调用从写方法 // Person p = (Person)ois.readObject(); // System.out.println(p); } catch (Exception e) { e.printStackTrace(); } } static class Person implements Externalizable { private String name, gender; public Person() { } public Person(String name, String gender) { this.name = name; this.gender = gender; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", gender='" + gender + '\'' + '}'; } @Override public void writeExternal(ObjectOutput out) throws IOException { out.writeObject(name); out.writeObject(gender); } @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { while (true) { try {
// //java.io.OptionalDataException 里面没数据会抛这个异常 System.out.println(in.readObject()); } catch (OptionalDataException e) { } } } }