java序列化与blockdata
现象
待序列化的对象实现了Externalizable接口:
public class Test implements Externalizable {
private String s;
@Override
public void writeExternal(ObjectOutput out) throws IOException {
if (s == null) {
out.writeShort(-1);
} else {
byte[] bb = s.getBytes("utf-8");
out.writeShort(bb.length);
out.write(bb);
}
}
@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
int len = in.readShort();
if (len < 0)
return null;
byte[] bb = new byte[len];
in.read(bb);
return new String(bb, "utf-8");
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
public class Test implements Externalizable { private String s; @Override public void writeExternal(ObjectOutput out) throws IOException { if (s == null) { out.writeShort(-1); } else { byte[] bb = s. |