定义
ByteArrayInputStream,包含一个内部缓冲区,该缓冲区包含从流中读取的字节。
ByteArrayOutputStream,此类实现一个输出流,其中的数据被写入一个byte数组
注意
- 基于内存操作,内部维护着一个字节数组,我们可以利用流的读取机制来处理字符串
- 字节数组流无需关闭
示例
实现功能:从字符串"123456789wertyuiRTYUIO@#$%^&/.,mnb"中提取所有字母部分
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
/**
* 字节数组流
* 基于内存操作,内部维护着一个字节数组,我们可以利用流的读取机制来处理字符串
* 无需关闭
*@author peiren
*/
public class ByteArrayOutputStreamDemo {
public static void byteArray() {
String s="123456789wertyuiRTYUIO@#$%^&/.,mnb";
ByteArrayInputStream bais=new ByteArrayInputStream(s.getBytes());
ByteArrayOutputStream baos=new ByteArrayOutputStream();
int curr=-1;//每次读取的字节
while((curr=bais.read())!=-1) {
if((curr>=65&&curr<=90)||(curr>=97&&curr<=122)) {
baos.write(curr);
}
}
//此时无需关闭,原因:字节数组流是基于内存的操作
System.out.println(baos.toString());
}
public static void main(String[] args) {
byteArray();
}
}
运行结果:
wertyuiRTYUIOmnb
转载于:https://www.jianshu.com/p/2c02aea45c36