本小节会简要概括 Java IO 中字节数组与过滤器的输入输出流,主要涉及以下 4 个类型的流:ByteArrayInputStream、ByteArrayOutPutStream、FilterInputStream、FilterOutputStream。
ByteArrayInputStream
ByteArrayInputStream 允许你从字节数组中读取字节流数据:
byte[] bytes = "zhaoxiaoming".getBytes();
InputStream input = new ByteArrayInputStream(bytes);
int data = input.read();
while(data != -1){
// do something with data
data = input.read();
}
input.close();
如果数据存储在数组中,ByteArrayInputStream 可以很方便的读取数据。如果你有一个 InputStream 变量,又想从数组中读取数据呢?只需要把字节数组传递给 ByteArrayInputstream 的构造函数,再把这个 ByteArrayInputStream 赋值给 InputStream 变量就可以了。
ByteArrayOutputStream
ByteArrayOutputStream 允许你以数组的形式获取写入到该输出流中的数据。
ByteArrayOutputStream out = new ByteArrayOutputStream()
// write data to output staeam
byte[] bytes = output.toByteArray();