搜索
写经验 领红包
 > 财经

java字符输入流是什么(java中字符输出流)

导语:Java字符输入流详细解析 看不懂才怪 附配图源码 重要的是有案例

喜欢就关注小编,小编天天写,你也可以进步一点点

Reader字符输入流的继承结构

Reader字符输入流继承结构:

Reader:字符输入流的父类,抽象类。

InputStreamReader:转换流,字节输入流转换成字符输入流。

FileReader:文件字符输入流。

BufferedReader:带缓冲的字符输入流

字符输入流FileReader和其他字符输入流之前的关系

文件字符输入流FileReader是一个节点流,是其他字符输入流依赖的字符输入流。此类直接读取磁盘上的文件。

FileReader字符输入流的构造函数:

FileReader(File file)

FileReader(String fileName)

字符缓冲输入流BufferedReader是带缓冲区的输入流,默认8k的char类型数组作为缓冲区,主要是为了减少读取磁盘的次数,提高程序的性能。

BufferedReader字符输入流的构造函数:

BufferedReader(Reader in)

BufferedReader(Reader in, int sz)

从BufferedReader输入流的构造函数就可以看出,此类是包装类,构造函数中的参数类型是Reader,可以是FileReader,也可以是InputStreamReader转换流。

InputStreamReader转换流的主要作用是将字节输入流转换成字符字符流,是Reader抽象类的核心实现,也是包装类。

InputStreamReader输入转换流的构造函数:

InputStreamReader(InputStream in)

从构造函数可以看出,转换流包装的是FileInputStream字节输入流。将字节输入流转换成字符输入流Reader,可以作为BufferedReader缓冲流的节点流。

FileReader字符输入流

FileReader是字符输入流,是用来读取字符文件的便捷类,是以字符为单位读取文件的,读取的最小单位是一次读取两个字节。如下图:

使用FileReader字符输入流读取文件

字符输入流和字节输入流的区别就是读取信息的基本单位不同,字节流读取的基本单位是一个字节,而字符输入流读取的是一个字符,二个字节。

创建一个文本文件E:\read01.txt:财经大学生张三

案例:使用字符输入流读取文本文件信息,并且输出到控制台

当个字符读取显示的是十进制字符编码,转换太麻烦,并且每一个字符要访问一次磁盘,效率太低,并且频繁的访问磁盘对磁盘的损耗也很大。需要注意的是,读取到文件末尾返回的是-1,可以作为判断是否读取到文件末尾的条件。

案例:采用字符数组的方式进行读取

控制台显示:

和FileInputStream字节流相同,使用字符数组读取信息,根据是否分-1判断是否到文件末尾,只取有效的字符。

案例:采用循环读取的方式,也是通常使用的方法

喜欢就关注小编,小编天天写,你也可以进步一点点

免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小迪创作整理编辑!