JAVA--IO:内存流

目录

内存流

构造函数说明

常用方法

流操作规律设备详解

示例


内存流

ByteArrayInputStreamByteArrayOutputStream

用于操作字节数组的流对象

CharArrayReaderCharArrayWriter

用于操作字符数组的流对象

StringReaderStringWriter

用于操作字符串的流对象

以上都是内存为源和目的的读写操作流对象,简称内存流,它们的构造函数和常用方法使用大致类似,以下以操作字节数组的流对象:ByteArrayInputStream与ByteArrayOutputStream展开来讲。

扩展:

内存流的作用:

1、用于操作字节数组的流对象,其实它们就是对应设备为内存的流对象。

2、该流的关闭是无效的,因为没有调用过系统资源。

3、按照流的读写思想操作数组中元素。

构造函数说明

ByteArrayInputStream:在构造的时候,需要接收数据源,而且数据源是一个字节数组。

ByteArrayOutputStream:在构造的时候,不用定义数据目的,因为该对象中已经内部封装了可变长度的字节数组,它就是数据目的地。

注意:因为这两个流对象都操作的数组,并没有使用系统资源,所以不用使用close()关闭系统资源。

常用方法

ByteArrayInputStream(byte[] buf):创建一个 ByteArrayInputStream,使用 buf 作为其缓冲区数组。

ByteArrayOutputStream():创建一个新的 byte 数组输出流。

void writeTo(OutputStream out):将此 byte 数组输出流的全部内容写入到指定的输出流参数中,这与使用 out.write(buf, 0, count) 调用该输出流的 write 方法效果一样。

流操作规律设备详解

源设备

    键盘 System.in, 硬盘 FileStream, 内存 ArrayStream…(内存流)

目的设备

    控制台 System.out, 硬盘 FileStream, 内存 ArrayStream…(内存流)

示例

内存流本质:用流的读写思想来操作数组

import java.io.*;
class ByteArrayStream{
	
	public static void main(String[] args)throws IOException{
		// 数据源
		ByteArrayInputStream bis=new ByteArrayInputStream("ABCDEFG".getBytes());
		// 数据目的
		ByteArrayOutputStream bos=new ByteArrayOutputStream();
		
		int by=0;
		while((by=bis.read())!=-1){
			bos.write(by);
		}
		
		System.out.println(bos.size());
		System.out.println(bos.toString());
		
		// bos.writeTo(new FileOutputStream("a.txt"));	// 只有这个方法会抛出读写异常
	}
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值