• Java中的IO流 ObjectInputStream和ObjectOutputStream


    ObjectOutputStream写入对象,可以将多个对象放到集合中,一次性将多个对象写入到文件中。对象要实现序列化Serializable

    对象流在写入文件时,类重写加载后写入的内容会覆盖之前的内容,所以要先读取原文本的内容并获取之后再继续添加内容

     1 package object.io;
     2 
     3 import java.io.FileInputStream;
     4 import java.io.FileOutputStream;
     5 import java.io.ObjectInputStream;
     6 import java.io.ObjectOutputStream;
     7 import java.util.ArrayList;
     8 import java.util.List;
     9 
    10 public class ObjectStream {
    11     public static void main(String[] args) throws Exception {
    12         Person p1=new Person("ZTT", 23);
    13         Person p2=new Person("ZN", 25);
    14         
    15         List<Person> persons=new ArrayList<Person>();
    16         persons.add(p1);
    17         persons.add(p2);
    18         FileOutputStream out=new FileOutputStream("D:\Program Files (x86)\io\ObjectStream.txt");
    19         ObjectOutputStream oop=new ObjectOutputStream(out);
    20         oop.writeObject(persons);
    21         
    22         oop.close();
    23         FileInputStream in=new FileInputStream("D:\Program Files (x86)\io\ObjectStream.txt");
    24         ObjectInputStream oip=new ObjectInputStream(in);
    25         //oip.read();
    26         System.out.println(oip.readObject());
    27         oip.close();
    28         in.close();
    29         
    30     }
    31 }

    对象实现序列化Serializable

     1 package object.io;
     2 
     3 import java.io.Serializable;
     4 
     5 public class Person implements Serializable{
     6     @Override
     7     public String toString() {
     8         return "Person [name=" + name + ", age=" + age + "]";
     9     }
    10     public String getName() {
    11         return name;
    12     }
    13     public void setName(String name) {
    14         this.name = name;
    15     }
    16     public int getAge() {
    17         return age;
    18     }
    19     public void setAge(int age) {
    20         this.age = age;
    21     }
    22     private String name;
    23     private int age;
    24     public Person(String name, int age) {
    25         super();
    26         this.name = name;
    27         this.age = age;
    28     }
    29     public Person() {
    30         super();
    31     }
    32     
    33 }

  • 相关阅读:
    httpClient模拟浏览器发请求
    中文字符所占字节
    eclipse代码左虚线对齐设置
    git 几款好用的客户端工具
    github快速入门(一)
    eclipse插件开发(一)
    SpringMVC解决跨域的两种方案
    SpringMVC SessionAttributes 简述
    关于Spring的HibernateTemplate的findByExample方法使用时的一点注意。
    Windows10 Ubuntu bash 配置 LAMP+JDK+Tomcat
  • 原文地址:https://www.cnblogs.com/ztt0918/p/8124141.html
Copyright © 2020-2023  润新知