下面是一個示例代碼,其中List
,String
和Map
已被序列化和反序列化。可以說我需要通過電匯發送file
。接收方客戶如何知道反序列化按照List,String,Map的順序?他應該怎麼知道要讀取的對象是什麼?如何在不知道序列化內容的情況下讀取ObjectInputStream?
public static void serializeBunchOfObjects() throws FileNotFoundException, IOException {
List<String> foo = new ArrayList<String>();
String str = "foo";
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("foo"));
oos.writeObject(foo);
oos.writeObject(str);
oos.writeObject(map);
oos.close();
}
public static void deserializeBunchOfObjects() throws FileNotFoundException, IOException, ClassNotFoundException {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("foo"));
List<String> foo = (List)ois.readObject();
String str = (String) ois.readObject();
Map<Integer, Integer> mapper = (Map) ois.readObject();
}
「?應該知道,反序列化接收客戶端如何在列表中,字符串,地圖的順序」問題就沒有意義了。客戶如何知道它是一個對象流?客戶端如何知道對象正在被髮送* *任何客戶端 - 服務器系統都有一個應用協議,並且兩端都應該實現它。 – EJP