内存流的使用——基本使用

本文介绍了Java内存流的基本使用,包括主要构造方法、ByteArrayInputStream和ByteArrayOutputStream的主要成员方法,并通过案例展示了如何在内存中进行数据交互。内存流适用于网络传输等场景,允许程序直接与内存中的数据进行操作。

内存流是将流的输入输出位置放到内存上,而不是建立在内存和外部设备之间,此时的操作应该以内存为操作点,和Java程序在一起,可以看做是java和内存中的数据之间的交互。

应用:网络传输,会将文件放到内存,这时需要用内存流读取到java。

主要构造方法

//参数是byte类型数组
ByteArrayInputStream bais = new ByteArrayInputStream(byte[] buf);

//内存输出流
ByteArrayOutputStream baos = new ByteArrayOutputStream();

内存输入流ByteArrayInputStream主要成员方法

//从该输入流读取下一个数据字节
int read();
read(byte[] b, int off, int len);

//关闭流
void close();

内存输出流ByteArrayOutputStream主要成员方法

//写入
void write(int b); 
void write(byte[] b, int off, int len); 

//关闭流
void close();

案例演示

/**
* 要求:将读取到的大写字母转为小写字母输出
*/
public static void main(String[] args) throws IOException {
	String str = "ABCDEF";

    //创建流
    ByteArrayInputStream bais = new ByteArrayInputStream(str.getBytes());
    ByteArrayOutputStream baos = new ByteArrayOutputStream();

    //读取,注意read()方法返回值是int类型
    int d = -1;
    while ((d = bais.read()) != -1) {
       char c = Character.toLowerCase((char) d);	//int强转为char
       baos.write(c);	//这里的char又转为int类型,属于默认转型,调用void write(int b)
    }

    bais.close();
    baos.close();

    System.out.println(baos.toString());
}

//打印结果
abcdef
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值