网站首页 > 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判断是否到文件末尾,只取有效的字符。
案例:采用循环读取的方式,也是通常使用的方法
喜欢就关注小编,小编天天写,你也可以进步一点点
猜你喜欢
- 2024-10-30 Java流与输入、输出流分别什么?(java的输入输出流)
- 2024-10-30 java中输入流的常用操作(java输入输出流可以从哪几个当面进行分类,分别是什么?)
- 2024-10-30 初识java—(四十八)输入/输出(一)
- 2024-10-30 Java中的输入、输出流(java输入输出流操作)
- 2024-10-30 Java数据输入流(java 输入流)
- 2024-10-30 Java 解析用户输入基础知识(java深入解析)
- 2024-10-30 十、Java控制台输入与输出(java程序控制台输入数据)
- 2024-10-30 Java的输入语句总结(java的输入语句怎么写?)
- 2024-10-30 java键盘输入(JAVA键盘输入三个数)
- 2024-10-30 尚学堂java学习笔记:Java输入和输出
你 发表评论:
欢迎- 07-15采用Oracle OSB总线进行服务注册和接入
- 07-15javaEE 新闻管理系统 oracle11+tomcat6
- 07-15从Oracle演进看数据库技术的发展(oracle数据库发展史)
- 07-15如何升级oracle数据库安全补丁(oraclepsu补丁升级)
- 07-15【权威发布】关于Oracle WebLogic Server未授权远程代码执行高危漏洞的预警通报
- 07-15【mykit-data】 数据库同步工具(数据库表同步工具)
- 07-15[Java速成] 数据库基础,Connector/J、JDBC、JPA的关系(day 7)
- 07-15Google前工程主管“入住”Oracle(google浏览器找不到以前的书签)
- 最近发表
-
- 采用Oracle OSB总线进行服务注册和接入
- javaEE 新闻管理系统 oracle11+tomcat6
- 从Oracle演进看数据库技术的发展(oracle数据库发展史)
- 如何升级oracle数据库安全补丁(oraclepsu补丁升级)
- 【权威发布】关于Oracle WebLogic Server未授权远程代码执行高危漏洞的预警通报
- 【mykit-data】 数据库同步工具(数据库表同步工具)
- [Java速成] 数据库基础,Connector/J、JDBC、JPA的关系(day 7)
- Google前工程主管“入住”Oracle(google浏览器找不到以前的书签)
- Oracle数据库云服务系列新增前所未有的企业级功能
- 直播预告丨如何实现Oracle存储过程到java的一键转化
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)