JAVA 输入输出流详解
来源:互联网 发布:易语言上位机编程 编辑:程序博客网 时间:2024/04/29 20:08
InputStream是字节输入流的所有类的超类,OutputStream是字节输出流的所有类的超类,Reader是
所有读取字符串输入流的祖先,Writer是所有输出字符串流的祖先。因为JAVA中输入输出都是相对的,
所以我们详解JAVA中的输入流,理解了输入流的相关知识,输出流自然就了解了。
InputStream有很多子类,其中最常用的就是FIleInputStream,FIleInputStream是一个字节流读取函数,但是它只能一个字节一个字节的读取文本,并且读出的是Ascii整数,不能按行或者其他方式读取。
Reader也有很多子类,常用的有BufferedReader,InputStreamReader和FileReader。
1.BufferedReader是一个高速缓存字符输出流,它以字节的方式从文件中读取文本,缓冲各个字符从而实现字符数组和行的高速读取。但BufferedReader 不能直接读取文本,它读取的文本必须经过字节流的缓冲,也就是说BufferedReader只能通过包装其他字符输出流才能实现文件的字符输出。BufferedReader也是唯一的可以按行读取文件的输出流,也是最常用的。
FileInputStream file2 = new FileInputStream(file);InputStreamReader file1 = new InputStreamReader(file2);BufferedReader reader = new BufferedReader(file1);
或者是这样 FileReader file;BufferedReader reader;String line;try {file = new FileReader("E:\\ff.txt");reader = new BufferedReader(file);line = reader.readLine();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}
2.InputStreamReader是字节流转化为字符流的桥梁,如下所示,InputStreamReader需要经过字节流的包装才能实现文件的读取,读取得到的也是Ascii整数,不能按行或者其他方式读取。。
FileInputStream file2 = new FileInputStream(file);InputStreamReader file1 = new InputStreamReader(file2);3.FileReader是Reader类中唯一一个不需要字符流包装就能实现文件读取的子类,因为FileReader源码中包装了一个FileInputStream函数,所以上面两个子类也可以通过包装FileReader来实现文本读取,但FileReader本身返回的是Ascii整数,不能按行或者其他方式读取。
也就是说所有这些文本读取函数中只有BufferedReader返回的是String类型的文本,也只有BufferedReader可以实现按行读取,所以在真正使用过程中,一般情况下我们都使用BufferedReader包装其他输出流来进行文本的读取。
- Java输入输出流详解
- Java输入输出流详解
- Java输入输出流详解
- java输入输出流详解
- JAVA输入输出流详解
- java输入输出流详解
- Java输入输出流详解
- java 输入输出流详解
- JAVA 输入输出流详解
- Java输入输出流详解
- Java输入输出流详解
- java输入输出流详解
- Java输入输出流详解
- Java输入输出流详解
- Java输入输出流详解
- Java输入输出流详解
- Java输入输出流详解
- java io输入输出流详解
- RGB基础
- 项目管理启航篇-那些年,我们遇到的项目经理。
- android sdk 国内镜像
- pthread mutex 属性
- Windows 快键方式设置启动项,快速关机和重启
- JAVA 输入输出流详解
- Shader学习整理
- 《swift2.0 官方教程中文版》 第2章-15析构过程
- 悦动圈跑步 随意提交步数 重大BUG漏洞 希望官方早些修复
- FPGA 5分频程序
- AT&T 汇编语言学习笔记
- 项目总结
- JS和OC相互调用
- NSAssert的使用