java.io 字节流
java.io 字节流
基类 InputStream 和 OutputStream
字节流主要操作 byte 类型数据,以 byte 数组为准,java 中每一种字节流的基本功能依赖于基本类 InputStream 和 Outputstream,他们是抽象类,不能直接使用。字节流能处理所有类型的数据(如图片、avi 等)。
InputStream
InputStream 是所有表示字节输入流的基类,继承它的子类要重新定义其中所有定义的抽象方法.InputStream是从装置来源地读取数据的抽象表示,例如System中的标准输入流in对象就是一个InputStream类型的实例。
我们先来看看InputStream类的方法:
方法 | 说明 |
---|---|
read()throws IOException | 从输入流中读取数据的下一个字节(抽象方法) |
skip(long n) throws IOException | 跳过和丢弃此输入流中数据的n个字节 |
available() throws IOException | 返回流中可用字节数 |
mark(int readlimit) throws IOException | 在此输入流中标记当前的位置 |
reset() throws IOException | 将此流重新定位到最后一次对此输入流调用mark方法时的位置 |
markSupport() throws IOException | 测试此输入流是否支持mark 和 reset 方法 |
close() throws IOException | 关闭流 |
在InputStream类中,方法read()提供了三种从流中读数据的方法;
- int read(): 从输入流中读一个字节,形成一个0~255之间的整数返回(是一个抽象方法)
- int read(byte b[]): 从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中。
- int read(byte b[], int off,int len): 从输入流中读取长度为len的数据,写入数组b中从索引off开始的位置,并返回读取的字节数。
对于这三个方法,若返回-1,表明流结束,否则,返回实际读取的字符数。
OutputStream
OutputStream 是所有表示字节输出流类的基类。子类要重新定义其中所定义的抽象方法,OutputStream 是用于将数据写入目的地的抽象表示。例如 System 中的标准输出流对象 out 其类型是 java.io.PrintStream,这个类是 OutputStream 的子类。
OutputStream 类方法:
方法 | 说明 |
---|---|
write(int b)throws IOException | 将指定的字节写入此输出流(抽象方法) |
write(byte b[])throws IOException | 将字节数组中的数据输出到流中 |
write(byte b[], int off, int len)throws IOException | 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流 |
flush()throws IOException | 刷新此输出流并强制写出所有缓冲的输出字节 |
close()throws IOException | 关闭流 |
看个例子
1 | import java.io.IOException; |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Cat at ngint!
评论