JAVA-字节数组流

定义

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

猜你喜欢

转载自blog.csdn.net/weixin_34018169/article/details/91068032