I/O流
来源:互联网 发布:云计算的优缺点 编辑:程序博客网 时间:2024/05/17 23:37
这里写图片描述
这里写图片描述
流按作用分类可分为节点流和处理流。节点流是用来指定输入来源或者输出去向的流。处理流是用来叠加在节点流上对数据进一步处理的流。
InputStream派生出的节点流包括:FileInputStream(从文件读取)、PipedInputStream、ByteArrayInputStream(从字节数组读取)、
StringBufferInputStream(从StringBuffer读取)。
InputStream派生出的处理流包括:FilterInputStream、SequenceInputStream、ObjectInputStream(以对象形式读取数据)。其中FilterInputStream又派生出LineNumberInputStream、DataInputStream、BufferedInputStream、PushbackInputStream。
OutputStream派生出的节点流包括:FileOutputStream(写出到文件)、PipedOutputStream、ByteArrayOutputStream(写出到字节数组)。
OutputStream派生出的处理流包括:FilterOutputStream、ObjectOutputStream(以对象的形式写出)。FilterOutputStream又派生出DataOutputStream(以基本数据的形式写出)、BufferedOutputStream(缓存后定量写出)、PrintStream(以打印形式写出)。
InputStream
InputStream方法列举:
read():
public abstract int read() throws IOException;
InputStream中的read()读取单个字节是抽象方法。返回读取到的字节,范围是0到255,如果读取到了流的末尾,则会返回-1。如果没有输入数据该方法会阻塞住。
read(byte b[]):
public int read(byte b[]) throws IOException { return read(b, 0, b.length);}
读取一些字节到字节数组b中,返回实际读取的字节数,如果字节数组b长度为0,则没有读取到任何字节,返回0。如果读取到了流的末尾,则会返回-1。注意,读取的字节按顺序放到数组b中,如果实际读取到的字节数小于b的长度,则b中剩下的位置的元素值保持不变。
read(byte b[], int off, int len):
public int read(byte b[], int off, int len) throws IOException
len表示所要读取的字节数,off表示从b[off]开始存放读取到的字节。实际实现是重复调用read()方法,如果首次调用read()抛出异常,则会直接不处理从本方法中抛出异常。后续调用read()如果抛出异常则会捕获住异常。
skip(long n):
public long skip(long n) throws IOException
跳过n个字节,实际实现是通过read()把n个字节读取到局部变量字节数组中。
FileInputStream和FileOutputStream
文件字节输入流和输出流分别提供read()、write()和read(byte[])、write(byte[],int,int)两组无参和有字节数组参数的读写方法。如果是无参的读写方法,效率十分低。根据测试,使用字节数组的读写比无参读写快上700+倍。
如果再套上一层BufferedInputStream和BufferedOutputStream,速度可以提升到原来的3.5倍左右。
- I/O 流
- java I/O流
- c++I/O流
- I/O流
- java I/O流
- java I/O流
- 文件I/O流
- Java I/O流
- I/O 流分类
- I/O流
- I/O流操作
- C++ I/O流
- Day18 I/O流
- JAVA--I/O流
- java I/O流
- C++ I/O流
- I/O流
- 16、I/O流
- 蝉
- 关于 MAC 下解压文件乱码的问题
- cookie 使用
- Android adb无线调试2
- 代码混淆
- I/O流
- HDU 6044 Limited Permutation dfs 统计
- jsp探针
- 八款Android 开发者必备的小工具
- cocos2d-x游戏引擎基础知识介绍(一)
- kruskal(最小生成树)
- Gerrit上分支操作记录(创建分支、删除分支)
- 微信小程序(初学篇)——仿美团外卖
- Apache Commons工具包