Java基础(九) ---- IO流

含义
IO(Input/Output)流是用于处理输入和输出数据的机制,它提供了一种在程序和外部资源之间传输数据的方式

字节流

应用场景:操作二进制数据(音频、视频、图片)
bstract class InputStream -- 字节输入流的基类(抽象类)
abstract class OutputStream -- 字节输出流的基类(抽象类)

class FileInputStream extends InputStream -- 文件字节输入流(是否追加)

class FileOutputStream extends OutputStream -- 文件字节输出流(是否追加)

class FilterInputStream extends InputStream -- 过滤器字节输入流

class FilterOutputStream extends OutputStream -- 过滤器字节输出流

class BufferedInputStream extends FilterInputStream -- 带缓冲区的字节输入流

class BufferedOutputStream extends FilterOutputStream -- 带缓冲区的字节输出流

字符流

应用场景:操作纯文本数据 注意:字符流 = 字节流+编译器

编译器:可以识别中文字符和非中文字符,非中文字符获取1个字节(一个字节=一个字符),编译器会根据编码格式获取中文字符对应的字节数(GBK获取两个字节,UTF-8获取三个字节)

abstract class Reader -- 字符输入流的基类(抽象类)

abstract class Writer -- 字符输出流的基类(抽象类)

class InputStreamReader extends Reader -- 字符输入转换流(可指定编码格式)

class OutputStreamWriter extends Writer -- 字符输出转换流(可指定编码格式)

特点:将字节流转换为字符流,字符转换流是字节流和字符流的桥梁

class FileReader extends InputStreamReader -- 文件字符输入流(可指定编码格式)(是否追加)

class FileWriter extends OutputStreamWriter -- 文件字符输出流(可指定编码格式)(是否追加)

class BufferedReader extends Reader -- 带有缓冲区的字符输入流

class BufferedWriter extends Writer -- 带有缓冲区的字符输出流

默认缓冲区大小:8192字符 -- new char[8192]

缓冲流

readLine(); -- 读取一行 newLine(); -- 新的一行

对象流

class ObjectInputStream -- 对象输入流

class ObjectOutputStream -- 对象输出流

理解:该流可以将对象写入文件,也可以读取文件中的对象 注意

  1. 写入数据后,打开文件你是看不懂的,这个不重要,重要的是取出来还能用

  2. 对象所属的类必须实现序列化接口 -- Serializable

  3. Serializable接口,没有让我们实现任何的抽象方法,这种接口称之为标记型接口

  4. 添加序列化ID -- private static final long serialVersionUID = -6885984330342979506L;

  5. transient修饰属性后,该属性不会随着对象而写入到文件

序列化/钝化:将程序中的对象写入到文件中

反序列化/活化:将文件中的对象读取到程序里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值