ObjectInputStream流 持久化


  ObjectInputStream流 持久化
  vo类:
                          package javabean;

                        import java.io.Serializable;

                        public class Student implements Serializable {
                        /**
                                 *
                                 */
                                private static final long serialVersionUID = 1L;
                                private static  int count=1;
                        private int id;
                        private String name;
                        private int classid;
                        public Student(){
                                id=count;
                                count++;
                        }
                        public int getId() {
                                return id;
                        }
                        public String getName() {
                                return name;
                        }
                        public void setName(String name) {
                                this.name = name;
                        }
                        public int getClassid() {
                                return classid;
                        }
                        public void setClassid(int classid) {
                                this.classid = classid;
                        }
                        public String toString(){
                                return name;
                        }
                        public boolean equals(Object obj){
                                if(obj instanceof Student){
                                        Student stu=(Student)obj;
                                        if(this.id==stu.id){
                                                return true;
                                        }
                                }
                                   return false;
                        }
                        }
   执行类

                        package test;
                        import java.io.File;
                        import java.io.FileInputStream;
                        import java.io.FileOutputStream;
                        import java.io.IOException;
                        import java.io.InputStream;
                        import java.io.ObjectInputStream;
                        import java.io.ObjectOutputStream;
                        import java.util.ArrayList;
                        import java.util.List;
                        import javabean.Student;
                        public class DataSave {
                        public static void main(String[] args){
                         List<Student> list=getData();
                         for(int i=0;i<list.size();i++){
                                 System.out.println(list.get(i));
                         }
                        }

                        private static File getFile(){
                                File file=new File("src\\file\\datasave.txt");
                                return file;
                        }
                        //获取文档数据
                        private static List<Student> getData(){
                                File file=getFile();
                                List<Student> list=null;
                                FileInputStream fis=null;
                                ObjectInputStream ois=null;
                                try {
                                         fis=new FileInputStream(file);
                                         if(fis.available()!=0){
                                         ois=new ObjectInputStream(fis);
                                         Object obj=ois.readObject();
                                     list=(ArrayList<Student>)obj;
                                     System.out.println(list.get(1));
                                         }
                                         else
                                         {
                                         list=new ArrayList<Student>();
                                         }
                                }catch(Exception e){
                                        e.printStackTrace();
                                }finally{
                                        fis=null;
                                        ois=null;
                                }
                                return list;
                        }
                        //更改数据
                        private static void setData(List<Student> list){
                                 File file=getFile();
                                FileOutputStream fos=null;
                            ObjectOutputStream oos=null;
                                try{
                            fos=new FileOutputStream(file);
                                oos=new ObjectOutputStream(fos);
                                oos.writeObject(list);
                                oos.flush();
                        } catch (Exception e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }finally{
                                        oos=null;
                                        fos=null;
                        }
                        }
                        //插入数据
                        public static void insert(Student stu){
                                    List<Student> list=getData();
                                    list.add(stu);
                                    setData(list);
                                   
                        }
                        //修改数据
                        public static void update(int i,Student stu){
                                List<Student> list=getData();
                            list.remove(i);
                            list.add(i, stu);
                            setData(list);
                        }
                        //删除数据
                        public static void delete(int i){
                                List<Student> list=getData();
                            list.remove(i);
                            setData(list);
                        }
                        public static void close(InputStream stream){
                                try {
                                        stream.close();
                                } catch (IOException e) {
                                        e.printStackTrace();
                                }
                        }
                        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值