栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA基础复习(五)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA基础复习(五)

11.I/O

transient可以阻止序列化,只能修饰变量,不能修饰类和方法。修饰的变量在反序列化后会变成默认值,比如int类型会变0。static不会被序列化,不属于对象。序列化成为二进制对象须加Serializable关键字

例:

public class TransientModel implements Serializable {
    private static final long serialVersionUID = -4575083234166325540L;

    private String a;
    private transient String b;


    public TransientModel (String a,String b){
        this.a= a;
        this.b= b;
    }

    @Override
    public String toString(){
        return String.format("TransientModel.toString(): a=%s,b=%s", a,b);
    }
}

    public static void main(String[] args){
        String a="a", b="b";
        TransientModel model = new TransientModel(a, b);
        System.out.println("序列化前:"+model.toString());
        ObjectOutputStream outStream;
        ObjectInputStream inStream;
        //文件保存在本地,把这个路径换成自己的文件路径
        String filePath = "D:/test/test.log";
        try {
            outStream = new ObjectOutputStream(new FileOutputStream(filePath));
            outStream.writeObject(model);
            inStream = new ObjectInputStream(new FileInputStream(filePath));
            TransientModel readObject = (TransientModel)inStream.readObject();
            System.out.println("序列化后:"+readObject.toString());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

I/O流的划分

按照流向,分为输入输出

按照操作单元,分为字节流和字符流

按照角色分为节点和处理

4个抽象基类:字符的输入输出:Input/OutputStreamRead. 字节的输入输出:Input/OutputStream

具体io流细分参考javaguide图

字符流方便字符传输,避免字节流转换字符时出现编码导致的乱码问题。

节点流:可以在指定位置读写的,如FileReader

处理流:对已存在的流封装,通过封装功能实现读写,如BufferReader

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/852138.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号