• 序列化和反序列化


    序列化:

    序列化要实现Serializable这个空接口,要生成uid

    序列化:

    private static final long serialVersionUID = 1L;
    
        public Book(){
            
        }
        
        
        
        public Book(String bookName, String autotName, double price) {
            this.bookName = bookName;
            this.autotName = autotName;
            this.price = price;
        }
    
    
        private String bookName;
        
        private String autotName;
        //transient 不需要序列化的对象
        private double price;
    
        public String getBookName() {
            return bookName;
        }
    
        public void setBookName(String bookName) {
            this.bookName = bookName;
        }
    
        public String getAutotName() {
            return autotName;
        }
    
        public void setAutotName(String autotName) {
            this.autotName = autotName;
        }
    
        public double getPrice() {
            return price;
        }
    
        public void setPrice(double price) {
            this.price = price;
        }
    
    
    
        @Override
        public String toString() {
            return "Book [bookName=" + bookName + ", autotName=" + autotName + ", price=" + price + "]";
        }
    FileOutputStream fos = null;
            ObjectOutputStream oos = null;
            File file = new File("book.txt");
            try {
                fos = new FileOutputStream(file);
                oos = new ObjectOutputStream(fos);
                Book book = new Book("听雪楼", "沧月", 30);
                oos.writeObject(book);
                oos.flush();
                fos.close();
                oos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }

    反序列化:

    ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File("book.txt")));
            Object book = ois.readObject();
            System.out.println(book);
    //反序列化会报一个空的错
    //这里抛出了没有处理

    集合序列化:

        List<Book> list = new ArrayList<Book>();
            list.add(new Book("听雪楼1", "沧月1", 20));
            list.add(new Book("听雪楼2", "沧月2", 20));
            list.add(new Book("听雪楼3", "沧月3", 20));
            list.add(new Book("听雪楼4", "沧月4", 20));
            list.add(new Book("听雪楼5", "沧月5", 20));
            File file = new File("array.txt");
            ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file));
            oos.writeObject(list);
            oos.flush();
            oos.close();
            
            
            ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file));
            List<Book> books =  (List<Book>) ois.readObject();
            ois.close();
            for (Book book : books) {
                System.out.println(book);
            }
  • 相关阅读:
    数据结构——算法之(029)( 字符串原地压缩)
    hihoCoder #1174:拓扑排序&#183;一
    POJ 3026 Borg Maze
    Remove Duplicates from Sorted List II--LeetCode
    mach-o格式分析
    otool -l 可执行文件结构
    mach-o可执行文件结果
    ios 编译版本 最低版本 运行版本 动态链接库
    关于__IPHONE_OS_VERSION_MAX_ALLOWED和__IPHONE_OS_VERSION_MIN_ALLOWED的用法
    OO真经——关于面向对象的哲学体系及科学体系的探讨(下)
  • 原文地址:https://www.cnblogs.com/miaomeng/p/8795325.html
Copyright © 2020-2023  润新知