字符流
由来:方便操作中文(2个字节 需要对其拆分和合并)
本质 字节流+编码表
编码表:ASCII GBK UNICODE(USC-2 , USC-4) UTF-8
String中的编解码问题 默认编码表GBK中文
编码: 字符串转换成字节数组
解码: 字节数组转换成字符串
转换流
字节流操作中文不是特别方便,java就提供了转换流。
输入: InputStreamReader
输出: OutputStreamWriter
flush和close的区别:
flush:刷新缓冲区,刷新完毕以后流对象可以继续使用
close:关闭流对象,但是在关闭之前需要刷新缓冲区,并且关闭以后流对象就不能再次使用
便捷类
由来: 1.使用转换流的时候名称太长 2.一般情况下无需指定编码表
对应关系:
转换流 便捷类
InputStreamReader FileReader
OutputStreamWriter FileWriter
高效字符流
输入: BufferedReader
特有的功能: public String readLine(): 一次读取一行
输出: BufferedWriter
特有的功能 public void newLine(); 写一个换行符
由来:方便操作中文(2个字节 需要对其拆分和合并)
本质 字节流+编码表
编码表:ASCII GBK UNICODE(USC-2 , USC-4) UTF-8
String中的编解码问题 默认编码表GBK中文
编码: 字符串转换成字节数组
解码: 字节数组转换成字符串
转换流
字节流操作中文不是特别方便,java就提供了转换流。
输入: InputStreamReader
输出: OutputStreamWriter
flush和close的区别:
flush:刷新缓冲区,刷新完毕以后流对象可以继续使用
close:关闭流对象,但是在关闭之前需要刷新缓冲区,并且关闭以后流对象就不能再次使用
便捷类
由来: 1.使用转换流的时候名称太长 2.一般情况下无需指定编码表
对应关系:
转换流 便捷类
InputStreamReader FileReader
OutputStreamWriter FileWriter
高效字符流
输入: BufferedReader
特有的功能: public String readLine(): 一次读取一行
输出: BufferedWriter
特有的功能 public void newLine(); 写一个换行符