zoukankan      html  css  js  c++  java
  • Java对象的序列化与反序列化

    学习了一下Java对象的序列化与反序列化,下面的代码是一个简单的例子。

    Java代码 复制代码
    1. import java.io.File;  
    2. import java.io.FileInputStream;  
    3. import java.io.FileNotFoundException;  
    4. import java.io.FileOutputStream;  
    5. import java.io.IOException;  
    6. import java.io.ObjectInputStream;  
    7. import java.io.ObjectOutputStream;  
    8. import java.util.Date;  
    9.   
    10.   
    11. public class sirializableTest implements Serializable  
    12. {  
    13.     private String username;  
    14.     private transient String password;   //不会参与序列化与反序列化的过程  
    15.       
    16.     public sirializableTest(String username, String password)  
    17.      {  
    18.         this.username = username;  
    19.         this.password = password;  
    20.      }  
    21.       
    22.     public String toString()  
    23.      {  
    24.         return "username: " + username + ", password: " + password;  
    25.      }  
    26.       
    27.     public static void main(String[] args)  
    28.      {         
    29.         try   
    30.          {  
    31.              File f = new File("C:\\a.obj");  
    32.             if(!f.exists())  
    33.                  f.createNewFile();  
    34.               
    35.             //序列化对象  
    36.              ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(f));  
    37.              out.writeObject("Happy New Year !");  
    38.              out.writeObject(new Date());  
    39.              sirializableTest test = new sirializableTest("yoyo", "20090105");  
    40.              out.writeObject(test);  
    41.              out.close();  
    42.               
    43.             //反序列化对象  
    44.              ObjectInputStream in = new ObjectInputStream(new FileInputStream(f));  
    45.              System.out.println(in.readObject());  //输出:Happy New Year !  
    46.              System.out.println(in.readObject());  //输出:Mon Jan 05 17:18:39 CST 2009  
    47.              System.out.println(in.readObject());  //输出:username: yoyo, password: null  
    48.               
    49.          } catch (FileNotFoundException e) {  
    50.              e.printStackTrace();  
    51.          } catch (IOException e) {  
    52.              e.printStackTrace();  
    53.          } catch(ClassNotFoundException e) {  
    54.              e.printStackTrace();  
    55.          }  
    56.      }  
    57. }  
    import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.Date; public class sirializableTest implements Serializable { private String username; private transient String password; //不会参与序列化与反序列化的过程 public sirializableTest(String username, String password) { this.username = username; this.password = password; } public String toString() { return "username: " + username + ", password: " + password; } public static void main(String[] args) { try { File f = new File("C:\\a.obj"); if(!f.exists()) f.createNewFile(); //序列化对象 ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(f)); out.writeObject("Happy New Year !"); out.writeObject(new Date()); sirializableTest test = new sirializableTest("yoyo", "20090105"); out.writeObject(test); out.close(); //反序列化对象 ObjectInputStream in = new ObjectInputStream(new FileInputStream(f)); System.out.println(in.readObject()); //输出:Happy New Year ! System.out.println(in.readObject()); //输出:Mon Jan 05 17:18:39 CST 2009 System.out.println(in.readObject()); //输出:username: yoyo, password: null } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch(ClassNotFoundException e) { e.printStackTrace(); } } }

           当然,保存的文件也可以是其他格式。如果用记事本打开,会看到一堆乱码。

  • 相关阅读:
    避免因为Arcgis Server服务设置不当导致Oracle Process溢出的方法
    ArcSOC进程数不断增长导致oracle processes溢出原因分析
    PostgreSQL中的Toast Pointer
    SQLite中字段顺序和PAGE_SIZE对性能的影响
    PG数据库CPU和内存满负荷运转优化案
    ArcGIS Server浏览地图服务无响应原因分析说明
    PythonWeb全栈开发-虚拟环境搭建
    C 语言学习——错误处理
    C 语言学习——Valgrind 内存问题简述
    HTML学习--拖放API实现拖放排序
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400813.html
Copyright © 2011-2022 走看看