缓冲流 转换流 序列化流

day24


内容

  • 转换流
  • 缓冲流
  • 序列化流
  • 打印流

缓冲流

1.1概述

缓冲流也叫高速流 是对4个基本FileXxx流的加强

  • 字节缓冲流:输入BufferedInputStream 输出BufferedOutputStream
  • 字符缓冲流:读BufferedReader 写BufferedWriter

***基本原理:***在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率

1.2字节缓冲流

构造方法:

  • 创建一个新的缓冲输入流public BufferedInputStream(InputStream in)
  • 创建一个新的缓冲输出流 public BufferedOutputStream(OutputStream out)
  • 缓冲流 转换流 序列化流

1.3 字符缓冲流

构造方法

  • 创建一个新的缓冲输入流public BufferedReader(Reader in)
  • 创建一个新的缓冲输出流 public BufferedWriter(Writer out)
    缓冲流 转换流 序列化流
    特有方法

缓冲流 转换流 序列化流

二.转换流

2.1字符编码和字符集

字符编码 Character Encoding : 就是一套自然语言的字符与二进制数之间的对应规则。

字符集
也叫编码表。是一个系统支持的所有字符的集合,包括各国家文字、标点符号、图形符号、数字等。
缓冲流 转换流 序列化流

缓冲流 转换流 序列化流

2.2编码引出的问题

idea(默认 UTF-8)与windows(GBK)的解码方式不同

2.3InputStreamReader类

是从字节流到字符流的桥梁。它读取字节,并使用指定的字符集将其解码为字符。它的字符集可以由名称指定,也可以接受平台的默认字符集。

构造方法:
缓冲流 转换流 序列化流
缓冲流 转换流 序列化流

2.4OutputStreamWriter类

缓冲流 转换流 序列化流
图解:
缓冲流 转换流 序列化流

三.序列化

3.1概述

缓冲流 转换流 序列化流

3.2 ObjectOutputStream类

将Java对象的原始数据类型写出到文件,实现对象的持久存储。

构造方法:
public ObjectOutputStream(OutputStream out) : 创建一个指定OutputStream的ObjectOutputStream。
缓冲流 转换流 序列化流
缓冲流 转换流 序列化流
缓冲流 转换流 序列化流
缓冲流 转换流 序列化流

3.3 ObjectInputStream类

ObjectInputStream反序列化流,将之前使用ObjectOutputStream序列化的原始数据恢复为对象

四.打印流

平时我们在控制台打印输出,是调用 print 方法和 println 方法完成的,这两个方法都来自于java.io.PrintStream 类,该类能够方便地打印各种数据类型的值,是一种便捷的输出方式

4.1PrintStream类

缓冲流 转换流 序列化流