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判断是否到文件末尾,只取有效的字符。
案例:采用循环读取的方式,也是通常使用的方法
喜欢就关注小编,小编天天写,你也可以进步一点点
免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小迪创作整理编辑!