A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高会仁 中级黑马   /  2012-12-12 11:02  /  1584 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 高会仁 于 2012-12-12 11:04 编辑
  1. import java.io.*;


  2. /**
  3. * 把对象存储在硬盘叫做对象的持久化存储,也叫对象的序列化
  4. * 对象的序列化
  5. * */
  6. public class ObjectStreamDemo {

  7.         /**
  8.          * @param args
  9.          * @throws IOException
  10.          * @throws ClassNotFoundException
  11.          */
  12.         public static void main(String[] args) throws IOException, ClassNotFoundException {

  13. //                writeObj();
  14.                 readObj();
  15.         }
  16.         
  17.         public static void readObj() throws FileNotFoundException, IOException, ClassNotFoundException{
  18.                 ObjectInputStream ois = new ObjectInputStream(new FileInputStream("obj.txt"));
  19.                 //笨方法取出4个Person对象
  20.                 Person p1 = (Person) ois.readObject();
  21.                 Person p2 = (Person) ois.readObject();
  22.                 Person p3 = (Person) ois.readObject();
  23.                 Person p4 = (Person) ois.readObject();
  24.                 System.out.println(p1);
  25.                 System.out.println(p2);
  26.                 System.out.println(p3);
  27.                 System.out.println(p4);
  28.                 ois.close();
  29.         }
  30.         /**
  31.          * 将对象Person存储起来放在obj.txt中
  32.          * */
  33.         public static void writeObj() throws IOException{
  34.                 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("obj.txt"));
  35.                
  36.                 oos.writeObject(new Person("zhangsan",21));
  37.                 oos.writeObject(new Person("lisi",24));
  38.                 oos.writeObject(new Person("xiaoming",33));
  39.                 oos.writeObject(new Person("guange",30));
  40.                 oos.close();
  41.         }
  42. }
复制代码
Person类在这
  1. import java.io.Serializable;

  2. public class Person implements Serializable{

  3.         private static final long serialVersionUID = 1L;
  4.         private String name;
  5.         private int age;
  6.         Person(String name,int age){
  7.                 this.name = name;
  8.                 this.age = age;
  9.         }
  10.         public String toString(){
  11.                 return name+":"+age;
  12.         }
  13. }
复制代码
添加四个Person 对象到文本中,上面为笨方法取出4个Person对象;如何循环输出4个Person对象,求思路,求解答


评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
1.定义一个集合容器,存储四个Person对象到集合中(注意取出重复元素)
2.高级for循环遍历集合打印Person数据

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

回复 使用道具 举报
李志阳 发表于 2012-12-12 11:25
1.定义一个集合容器,存储四个Person对象到集合中(注意取出重复元素)
2.高级for循环遍历集合打印Person数 ...

这里是对象序列化,把对象存入硬盘中,四个Person对象已经存储到文件obj.txt中了。而集合只是存入内存,当程序关闭时就没了。这里就是如何把存入obj.txt中的四个Person对象循环打印出来?
回复 使用道具 举报

import java.io.*;


/**
* 把对象存储在硬盘叫做对象的持久化存储,也叫对象的序列化
* 对象的序列化
* */
class ObjectStreamDemo {

        /**
         * @param args
         * @throws IOException
         * @throws ClassNotFoundException
         */
        public static void main(String[] args) throws Exception {

             writeObj();
               readObj();
        }
        
        public static void readObj() throws Exception{
                ObjectInputStream ois = new ObjectInputStream(new FileInputStream("obj.txt"));
                //笨方法取出4个Person对象
                Person p1 = null;
                while((p1 = (Person) ois.readObject()) != null)
            {
                System.out.println(p1);
            
            }    ois.close();

        }
        /**
         * 将对象Person存储起来放在obj.txt中
         * */
        public static void writeObj() throws Exception{
                ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("obj.txt"));
               
                oos.writeObject(new Person("zhangsan",21));
                oos.writeObject(new Person("lisi",24));
                oos.writeObject(new Person("xiaoming",33));
                oos.writeObject(new Person("guange",30));
                oos.writeObject(null);
                oos.close();
        }
}

class Person implements Serializable{

        private static final long serialVersionUID = 1L;
        private String name;
        private int age;
        Person(String name,int age){
                this.name = name;
                this.age = age;
        }
        public String toString(){
                return name+":"+age;
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马