前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JAVASE中IO流笔记

JAVASE中IO流笔记

原创
作者头像
帅的一麻皮
修改2020-06-24 14:48:22
4720
修改2020-06-24 14:48:22
举报
文章被收录于专栏:前端与Java学习前端与Java学习

字节流:

内存===>硬盘:输出Out(写数据)

硬盘===>内存:输入In(读数据)

OutputStream:

1.操作的数据都是字节

2.定义了输出字节流的基本共性功能

3.输出流的方法都是write方法,可以操作字节数组,也可以操作单个字节

InputStream:

1.操作的数据都是字节

2.定义了输入字节流的基本共性功能

3.输入流中的方法都是read方法

read():读取一个字节并且返回,如果没有字节可以读了就返回-1

缓冲字节流:

BufferedInputStream:缓冲字节输入流

BufferedOutputStream:缓冲字节输出流

字节流关系图
字节流关系图

字符流转换流:

Reader:读取

1.InputStreamReader

2.FileReader

Writer:写入

1.OutputStreamWriter

2.FileWriter

缓冲字符流:

BufferedReader:缓冲字符输入流

BufferedWriter:缓冲字符输出流

小结:

InputStreamReader和OutputStreamWriter是字符和字节的桥梁,字符转换流

原理:字节流+编码表

FileReader和FileWriter:作为子类仅作为操作字符文件的便捷类,也就是说当操作字符文件的时候,使用的是默认的编码表时,可以直接用,不需要用父类。

键盘录入:BufferedReader br =new BufferedReader(new InputStreamReader(System.in));

注意:一旦指定其他编码表的时候,绝对不能够用子类,必须要用字符转换流

什么时候用子类呢:

1.操作的是文件

2.使用的是默认编码

字符流关系图
字符流关系图

序列化的一些概念:

1.什么是Serializable接口:

一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才能被序列化

2.什么是序列化?

将对象的状态信息转换为可以存储或传输的形式的过程,在序列化期间,对象将其当前状态写入到临时存储区或持久性存储区,之后,便可以通过从存储区中读取或反序列化对象的状态信息,来重新创建该对象(反序列化)

3.什么情况下需要序列化?

当我们需要把对象的状态信息通过网络进行传输,或者需要将对象的状态信息持久化,以便将来使用时都需要把对象进行序列化

4.transient 关键字作用

主要用来忽略我们不希望进行序列化的变量

5.序列化版本号

serialVersionUID,取值是 Java 运行时环境根据类的内部细节自动生成的。如果对类的源代码作了修改,再重新编译,新生成的类文件的 serialVersionUID 的取值有可能也会发生变化。序列化和反序列化就是通过对比其 SerialversionUID 来进行的,我们修改一个实现 Serializable 接口的实体类,重新编译后,显然程序会重新会生成新值,那么一旦SerialversionUID 跟之前不匹配,反序列化就无法成功。在实际的生产环境中,我们可能会建一系列的中间 Object 来反序列化我们的 pojo,为了解决这个问题,我们就需要在实体类中自定义 SerialversionUID,定义了之后不管我们序列化之后如何更改我们的 实体(不删除原有字段),最终都可以反序列化成功。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 字节流:
    • 缓冲字节流:
    • 字符流转换流:
      • 缓冲字符流:
        • 1.什么是Serializable接口:
    • 序列化的一些概念:
    相关产品与服务
    文件存储
    文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档