zoukankan      html  css  js  c++  java
  • java

    ObjectInputStream

    ObjectOutputStream

    package io;
    
    import java.io.*;
    
    public class ObjectStreamTest {
        public static void main(String[] args){
    
            TargetObject to1 = new TargetObject("aaa");  //测试用对象
    
            FileInputStream fis = null;
            FileOutputStream fos = null;
    
            ObjectInputStream ois = null;
            ObjectOutputStream oos = null;
            try {
                fos = new FileOutputStream("C:\Users\Administrator\Desktop\test\objectTest.txt");
                oos = new ObjectOutputStream(fos);  //高级流,用来处理低级流, 对象流,数组流,缓存流等都是高级流
                oos.writeObject(to1);
                oos.flush();
                //存入成功,不过内容是乱码,就不贴了
    
    
                fis = new FileInputStream("C:\Users\Administrator\Desktop\test\objectTest.txt");
                ois = new ObjectInputStream(fis);
                TargetObject to2 = (TargetObject) ois.readObject();  //readObject()返回的是Object类型,需要强转
                to2.show();
                //name = aaa| num = 1
                //读取成功
    
    
            }catch(Exception e){
                e.printStackTrace();
            }finally {
                if(fis != null){
                    try {
                        fis.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if(ois != null){
                    try {
                        ois.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if(fos != null){
                    try {
                        fos.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if(oos != null){
                    try {
                        oos.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }

    测试用的类

    package io;
    
    import java.io.Serializable;
    
    public class TargetObject implements Serializable {  //必须要继承序列化的接口才能序列化(分解成固定格式)后保存在文件里
        private String name;
        private static int num;
    
        public TargetObject(){
        }
    
        public TargetObject(String name){
            this.name = name;
            num++;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public static int getNum() {
            return num;
        }
    
        public void show(){
            System.out.print("name = " + name + "| num = " + num);
        }
    }

    低级流:

    FileInputStream

    FileOutputStream

    FileWriter

    FileReader

    高级流:

    高级流都是通过低级流进行工作,可以理解为对低级流进行了扩展

    比如:

    缓存流  BufferedReader, BufferedWriter, BufferedInputStream, BufferedOutputStream

    字符串流  StringReader, StringWriter

    数组流  ByteArrayInputStream ByteArrayOutputStream, CharArrayReader, CharArrayWriter

    对象流  ObjectInputStream, ObjectOutputStream

  • 相关阅读:
    Flask web开发之路二
    Flask web开发之路一
    英文文本挖掘预处理总结
    TF-IDF概念
    MongoDB数据库去重
    Python把两个列表合成一个字典
    网络通信协议七之ARP工作过程及工作原理解析
    Python基础爬虫
    Red and Black 模板题 /// BFS oj22063
    Alice拜年 模板题 /// 最短路Dijk oj1344
  • 原文地址:https://www.cnblogs.com/clamp7724/p/11645619.html
Copyright © 2011-2022 走看看