目录
为什么会出现字符流?
构造方法
字符流写数据的五种方式
字符流读数据的两种方式
案例:字符流复制java文件
字符缓冲流
字符缓冲流:
构造方法:
案例:字符流复制java文件(字符缓冲流改进版)
字符缓冲流特有功能
BufferedWriter:
BufferedReader:
案例:字符流复制java文件(字符缓冲流特有功能改进版)最常用
IO流小结
字节流
字符流
为什么会出现字符流?
由于字节流操作中文不是特别的方便,所以Java就提供字符流
- 字符流=字节流+编码表
用字节流复制文本文件时,文本文件也会有中文,但是没有问题,原因是最终底层操作会自动进行字节拼接成中文,如何识别是中文的呢?
- 汉字在存储的时候,无论选择哪种编码存储,第一个字节都是负数
构造方法
-
-
OutputStreamWriter(OutputStream out) 创建一个使用默认字符编码的OutputStreamWriter。
-
-
InputStreamReader(InputStream in) 创建一个使用默认字符集的InputStreamReader。
-
OutputStreamWriter(OutputStream out) 创建一个使用默认字符编码的OutputStreamWriter。
-
InputStreamReader(InputStream in) 创建一个使用默认字符集的InputStreamReader。
字符流写数据的五种方式
-
-
void flush() 刷新流。
-
不刷新数据就进不去
-
-
void close() 关闭流,先刷新。
-
字符流读数据的两种方式
案例:字符流复制java文件
需求:
把模块目录下的“ConversionStreamDemojava”复制到模块目录下的“Copyjava”
分析:
①转换流的名字比较长,而我们常见的操作都是按照本地默认编码实现的,所以,为了简化书写,转换流提供了对应的子类
②FileReader:用于读取字符文件的便捷类
- FileReader(String fileName)
③FileWriter:用于写入字符文件的便捷类
- FileWriter(String fileName)
④数据源和目的地的分析
- 数据源:myCharStream\ConversionStreamDemo.java---读数据--- Reader (抽象类)---InputStreamReader--- FileReader(子类)
- 目的地:myCharStream\Copyjava---写数据 ---Writer(抽象类)---OutputStreamWriter--- FileWriter(子类)
思路:
① 根据数据源创建字节输入流对象
② 根据目的地创建字节输出流对象
③ 读写数据,复制文件
④ 释放资源
字符缓冲流
字符缓冲流:
- BufferedWriter:将文本写入字符输出流,缓冲字符,以提供单个字符,数组和字符串的高效写入,可以指定缓冲区大小,或者可以接受默认大小。默认值足够大,可用于大多数用途
- BufferedReader:从字符输入流读取文本,缓中字符,以提供字符,数组和行的高效读取,可以指定缓冲区大小,或者可以使用默认大小。默认值足够大,可用于大多数用途
构造方法:
- BufferedWriter(Writer out)
- BufferedReader(Readerin)
- BufferedWriter:将文本写入字符输出流,缓冲字符,以提供单个字符,数组和字符串的高效写入,可以指定缓冲区大小,或者可以接受默认大小。默认值足够大,可用于大多数用途
- BufferedReader:从字符输入流读取文本,缓中字符,以提供字符,数组和行的高效读取,可以指定缓冲区大小,或者可以使用默认大小。默认值足够大,可用于大多数用途
构造方法:
- BufferedWriter(Writer out)
- BufferedReader(Readerin)
案例:字符流复制java文件(字符缓冲流改进版)
字符缓冲流特有功能
BufferedWriter:
- void newline():写一行行分隔符,行分隔符字符串由系统属性定义
BufferedReader:
- public String readLine():读一行文字。结果包含行的内容的字符串,不包括任何行终止字符(换行符等),如果流的结尾已经到达,则为null
- void newline():写一行行分隔符,行分隔符字符串由系统属性定义
BufferedReader:
- public String readLine():读一行文字。结果包含行的内容的字符串,不包括任何行终止字符(换行符等),如果流的结尾已经到达,则为null
案例:字符流复制java文件(字符缓冲流特有功能改进版)最常用
IO流小结
字节流
字符流



