• 生成 5个学生并使它们存放在文件中,用到序列化和反序列化


    //需求 :   生成 5个学生并使它们存放在文件中,用到序列化和反序列化
    package Zuoye01;
    
    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.ArrayList;
    import java.util.List;
    
    public class SerializeTest {
    
        public static void main(String[] args) {
    
            List <Student> stus = new ArrayList<>(); 
            
        
        
            stus.add(new Student("小笑", 19, "男"));
            stus.add(new Student("小龙", 24, "男"));
            stus.add(new Student("张三", 18, "男"));
            stus.add(new Student("雪莉", 17, "女"));
            stus.add(new Student("小华", 19, "女"));
            // 用序列化和反序列化
    
            // 1 要记得实现Serializeable.. 才能具有能序列化和反序列化的功能
            // 2 先写出地址 输出 :FileOutputStream / 输入:FileInputStream
            // 再分别写ObjectOutPutStream / ObjectInputStream两个类
    
            // 应该先输出 程序=> 文件夹 写
            FileOutputStream fos = null;
            ObjectOutputStream os = null;
    
            // 输入 再读取 文件夹 = > 程序
    
            FileInputStream fis = null;
            ObjectInputStream ois = null;
    
            //开始输出  
            
            try {
                fos = new FileOutputStream("D:/MyDemo/Student.txt");
                fis = new FileInputStream("D:/MyDemo/Student.txt");
    
                try {
                    os = new ObjectOutputStream(fos);
                    
                 os.writeObject(stus);
                    //序列化成功
                 os.flush();
                 //开始读取
                 //开始反序列化
                 
                    ois = new ObjectInputStream(fis);
                    try {
                        List<Student> stu1 = (List<Student>)ois.readObject();
                        for (int i = 0; i < stus.size(); i++) {
                            
                            System.out.println("我的名字是:"+stus.get(i).getName());
                            System.out.println("我的年龄是:"+stus.get(i).getAge());
                            System.out.println("我的性别是:"+stus.get(i).getGender());
                        
                            System.out.println("---------------------
    ");
                        }
                        
                    } catch (ClassNotFoundException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
                
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally {
                try {
                    ois.close();
                    fis.close();
                    os.close();
                    fos.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
            }
            }
        
    
    
    }
    package Zuoye01;
    
    import java.io.Serializable;
    
    public class Student implements Serializable{
        //创建学生类模板
        private String name;
        private int age;
        private String gender;
        public Student(String name, int age, String gender) {
            super();
            this.name = name;
            this.age = age;
            this.gender = gender;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public String getGender() {
            return gender;
        }
        public void setGender(String gender) {
            this.gender = gender;
        }
        
        
        
    
    }

     

  • 相关阅读:
    javascript执行机制
    PhpStorm常用的一些快捷键
    php值传递和引用传递的区别是什么?
    echo与print,var_dump()和print_r()的区别
    PHP错误类型及屏蔽方法
    工作中常用的正则表达式
    Linux环境变量配置文件/etc/profile、/etc/bashrc、~/.bashrc的区别以及一些隐藏文件的作用
    log4j配置不生效
    Java执行CMD命令
    jar的解压与打包
  • 原文地址:https://www.cnblogs.com/bichen-01/p/11288825.html
Copyright © 2020-2023  润新知