• 对象字节输出流


    序列化对象注意事项

    必须实现序列化接口

    Serializable

    对象字节输出流 (写入)

    1. package ObjectOutputstreamTeast;
    2. import java.io.FileOutputStream;
    3. import java.io.ObjectOutput;
    4. import java.io.ObjectOutputStream;
    5. public class ObjectOS {
    6. // 目标:掌握对象字节输出流的使用 序列化对象
    7. public static void main(String[] args) {
    8. try ( //创建字节对象
    9. ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("src/zfile1/mamat002.txt"));
    10. ){
    11. //创建对象
    12. OBuser u=new OBuser("admin","mamat",26,"6666888zx");
    13. oos.writeObject(u);
    14. System.out.println("序列化成功");
    15. } catch (Exception e) {
    16. e.printStackTrace();
    17. }
    18. }
    19. }
    1. package ObjectOutputstreamTeast;
    2. import java.io.Serializable;
    3. public class OBuser implements Serializable {
    4. private String loginName;
    5. private String userName;
    6. private int age;
    7. private transient String password;
    8. //加上 transient 这个成员不参加序列化
    9. public OBuser() {
    10. }
    11. public OBuser(String loginName, String userName, int age, String password) {
    12. this.loginName = loginName;
    13. this.userName = userName;
    14. this.age = age;
    15. this.password = password;
    16. }
    17. public String getLoginName() {
    18. return loginName;
    19. }
    20. public void setLoginName(String loginName) {
    21. this.loginName = loginName;
    22. }
    23. public String getUserName() {
    24. return userName;
    25. }
    26. public void setUserName(String userName) {
    27. this.userName = userName;
    28. }
    29. public int getAge() {
    30. return age;
    31. }
    32. public void setAge(int age) {
    33. this.age = age;
    34. }
    35. public String getPassword() {
    36. return password;
    37. }
    38. public void setPassword(String password) {
    39. this.password = password;
    40. }
    41. @Override
    42. public String toString() {
    43. return "OBuser{" +
    44. "loginName='" + loginName + '\'' +
    45. ", userName='" + userName + '\'' +
    46. ", age=" + age +
    47. ", password='" + password + '\'' +
    48. '}';
    49. }
    50. }

    2:对象字节输入流 (读取)

    读的时候不用出现密码那么 加上 transient 这个成员不参序列化

     

    1. package ObjectOutputstreamTeast;
    2. import java.io.FileInputStream;
    3. import java.io.ObjectInputStream;
    4. public class Test {
    5. public static void main(String[] args) {
    6. //创建一个对象字符输入管道,包装 低级的输入流与源文件接通
    7. try ( ObjectInputStream ois= new ObjectInputStream(new FileInputStream("src/zfile1/mamat002.txt"));
    8. ){
    9. System.out.println((OBuser)(ois.readObject()));
    10. } catch (Exception e) {
    11. e.printStackTrace();
    12. }
    13. }
    14. }

  • 相关阅读:
    学校宿舍一键视频对讲
    5-VMware Horizon 2203 虚拟桌面-Connect注册服务器(五)
    手机如何开启开发者选项? (小米为例)
    【2022牛客多校4】A-Task Computing (数学,dp)
    sharding-jdbc四种分片策略
    SD、SDIO和MMC接口基础和规范介绍
    2023北航全球科创大赛启动,首次设立面向在校生群体的新芽赛道
    Makefile基础
    jmeter采集ELK平台海量业务日志( 采用Scroll)
    数据库应用:CentOS 7离线安装PostgreSQL
  • 原文地址:https://blog.csdn.net/m0_46290090/article/details/133747164