缓冲流 转换流 序列化流
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 类,该类能够方便地打印各种数据类型的值,是一种便捷的输出方式