序列化生成的文件,我寫了個類就能拿到對象。那這還有什麼意義,沒什麼加密作用啊?
是我理解錯了嗎?
我的測試代碼:
class Cat implements Serializable{
private String name;
public Cat(){
this.name = "new cat";
}
public String getName(){
return this.name;
}
public void setName(String name){
this.name=name;
}
public static void main(String []args){
Cat cat = new Cat();
try{
//這就是要序列化文件的存儲位置,是由自己控制的。
//FileOutputStream fos = new FileOutputStream("zmy/catDemo2.txt");
FileOutputStream fos = new FileOutputStream("zmy/catDemo2.bat");
ObjectOutputStream oos = new ObjectOutputStream(fos);
System.out.println("1>"+cat.getName());
cat.setName("zMy cat");
oos.writeObject(cat);
oos.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
public class TestReadSerializable implements Serializable{
public static void main(String []args){
try{
FileInputStream fis = new FileInputStream("zmy/catDemo2.bat");
ObjectInputStream ois = new ObjectInputStream(fis);
Cat cat = (Cat)ois.readObject();
System.out.println(cat.getName());
ois.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
當兩個進程進行遠程通信時,可以相互發送各種類型的數據,包括文本、圖片、音頻、視頻等, 而這些數據都會以二進制序列的形式在網絡上傳送。那麼當兩個Java進程進行通信時,能否實現進程間的對象傳送呢?答案是可以的。如何做到呢?這就需要Java序列化與反序列化了。換句話說,一方面,發送方需要把這個Java對象轉換為字節序列,然後在網絡上傳送;另一方面,接收方需要從字節序列中恢復出Java對象。