java 内存流(ByteArrayInputStream,ByteArrayOutputStreaem)

1 什么是内存流
当输出流的目的,和输入流的源是内存时,这样的流称之为内存流。(就是将数据写入RAM)


2 内存流的构造方法

1. ByteArrayInputStream(byte buf[]) 创建一个 ByteArrayInputStream 并把指定该输入流的数据源buf[]。2.

2.ByteArrayOutputStream();创建一个 ByteArrayOutputStream 并把分配一个32字节(默认大小)的缓冲区。

3. ByteArrayOutputStream(int size);  创建一个 ByteArrayOutputStream 并分配自定 size 字节的缓冲区

3 读取内存数据和写入到内存数据

3.1 读取内存数据 

    try {
    	String testContent = "ABCDEFG";//程序运行的时候 这数据本身就在内存,
    	ByteArrayInputStream bais = new ByteArrayInputStream(testContent.getBytes());//创建内存输入流,指定要读取的数据 byte[]
    	int read;
    	while ((read = bais.read()) != -1) {//和普通流读取字节是一样的(也可以嵌套管道)
    		System.out.println((char) read);
    	}
    	bais.close();//关闭流,释放内存资源
    }...

3.2 写入数据到内存
 // ByteArrayOutputStream baos = new ByteArrayOutputStream(int size);//设置内部缓存大小为1。
		try {
			ByteArrayOutputStream baos = new ByteArrayOutputStream();//创建内存输出流,把数据写入到内存中
			String s1 = "hhhhh";
			String s2 = "aaaaa";
			
byte[] b1 = s1.getBytes();
			byte[] b2 = s2.getBytes();


			baos.write(b1);//和普通的输出流写输入一样,(也可以嵌套管道)
			baos.write(b2);// 将 b2 byte[] 存放到 baos 中缓存
			// 得到 ByteArrayOutputStream 内部的 byte[]中以缓存的数组
			byte[] byteArray = baos.toByteArray();
			String string = baos.toString();
			System.out.println(string);
			baos.flush();
			baos.close();


		} catch (IOException e) {
			e.printStackTrace();
		}

4  ByteArrayOutputStream 常用方法:toByteArray(), toString()

1. toByteArray() 方法;是将 ByteArrayOutputStream 对象所写入到内存的数据 转换成 byte[] 返回。
2. toString() 方法 ;是将 ByteArrayOutputStream 对象所写入到内存的数据 转换成 String 返回。

提示:内存流 除了 ByteArrayInputStream 与 ByteArrayOutputStream 主要处理字节数据之外,对应的还有:
- CharArrayReader 与  CharArrayWriter 主要处理字符数组。
- StringReader 与 StringWriter 主要处理字符串。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值