java基础io流的分类
来源:互联网 发布:李易峰2017过气 知乎 编辑:程序博客网 时间:2024/04/29 16:10
初步认识io流整体框架和分类,无具体用法
下面的分类中,我们把IO进行三种类别划分。
1)输入流和输出流所谓IO即输入输出,输入是对数据进行“读(read)”操作,从外存读到内存中,谓之“入”;输出是对数据进行“写(write)”操作,从内存写到外存,谓之“出”。从输入输出这个角度,可以将IO类分为两大类,即输入流和输出流,输入流定义了读数据的方法,输出流定义了写数据的方法。IO中所有输入流都是InputStream类或者Reader类的子类。凡是类名以InputStream结尾的类都是InputStream的子类,如FileInputStream等。同样的,凡是类名以Reader结尾的类都是Reader类的子类,如FileReader等。IO中所有输出流都是OutputStream或者Writer类的子类。凡是类名以OutputStream结尾的类都是OutputStream的子类,如FileOutputStream等。同样的,凡是类名以Writer结尾的类都是Writer类的子类,如FileWriter等。
2)字节流和字符流IO流进行数据输入输出操作时,编码格式有8位的字节和16位的字符两种。所以从数据流编码格式角度划分,IO流类又可以分为字节流和字符流两大类。InputStream和OutputStream的子类都是字节流,都将数据按照8位的字节方式传输,往往应用于视频、音频等文件的读写。Reader和Writer的子类都是字符流,都将数据按照16位的字符方式传输,往往用于文本文件的读写,尤其包含汉字的文件,必须使用字符流读写。
3)节点流和过滤流要使用IO流类进行数据输入输出操作,必须先创建IO流类的对象。而创建IO流对象,必须使用IO流类的构造方法。下面比较两个字符输入流FileReader和BufferedReader的构造方法:
(1)public FileReader(File file):FileReader类的构造方法参数是File类型,也就是说FileReader对象直接封装File对象。
(2)public BufferedReader(Reader in):BufferedReader类的构造方法参数是Reader类型对象,也就是说BufferedReader可以封装任意一种Reader类型对象,如FileReader、StringReader等。
通过上面构造方法的比较可见,FileReader类直接封装数据源,这样的流类称为节点流,如StringReader、CharArrayReader都是节点流,都直接封装某种特定类型的数据源。而BufferedReader类封装的是流对象,而不是特定类型的数据源,称为过滤流。节点流是输入输出时必须使用的类,用来将数据源转换成IO对象。而过滤流用来封装流对象,往往用来增强其他流对象的功能,起到的是“锦上添花”的作用。通过对IO流类进行不同角度的分类,读者可以快速了解IO包的结构。IO包中主要有4个顶级抽象类,即InputStream、OutputStream、Reader、Writer。它们的子类分别是字节输入流、字节输出流、字符输入流、字符输出流。而根据封装类型的不同,流又可以分为节点流和过滤流。如果流封装的是某种特定的数据源,如文件、字符串、字符数组等,则称为节点流,如果流封装的是其他流对象,称为过滤流。
文章摘自android长沙吧http://tieba.baidu.com/p/4255459344
- java基础io流的分类
- java基础“IO流及分类”
- Java基础回顾--java IO流相关的类的分类和总结 1
- Java基础回顾--java IO流相关的类的分类和总结 2
- Java基础进阶——“Java IO流之二:细说流的分类”
- java IO流的分类和操作
- Java的IO流总结分类
- java IO流的概念与分类
- java IO流的分类和操作
- java IO流的概念与分类
- Java中IO流的分类
- IO流的分类
- IO流的分类
- Java IO流分类整理
- java中的IO流分类
- java IO流相关的类的分类和总结
- 【Java.IO】I/O 流,流的分类
- java中IO流的总结和分类
- 使用hadoop+中文分词统计小说里的用词频率
- 21. gfe
- RAID相关知识简介
- 学习问题的总结
- 获取bitmap字节数
- java基础io流的分类
- java ThreadLocal
- 如何给你的android安装文件瘦身
- percona-toolkit验证MySQL主从一致性
- js实现图片上传预览
- LeetCode Q4
- Linux环境安装phpredis扩展
- 判断是否在主线程
- R语言中的双因素方差分析