12.5内存操作流(血干JAVA系列)

12.5内存操作流

在 流 的 操 作 中 除 了 进 行 文 件 的 输 入 与 输 出 操 作 之 外 , 也 可 以 针 对 内 存 进 行 同 样 的 操 作 。 假 设 现 在 某 一 种 应 用 需 要 进 行 i o 操 作 , 但 又 不 希 望 在 磁 盘 上 产 生 一 些 文 件 , 就 可 以 将 内 存 当 作 一 个临时文件进行操作。在Java中,针对内存操作提供有两组类:
(1)字节内存流:ByteArraylnputStream (内存字节输入流)、ByteArrayOutputStream (内存字节输出流)。
(2) 字符内存流:CharArrayReader (内存字符输入流)、Char Array Writer (内存字符输出流)。
在这里插入图片描述

本节以内存字节流讲解为主。
字节内存流与字符内存流两者唯一的区别就在于操作数据类型上,字节内存流操作使用byte数据类型,而字符内存流操作使用char数据类型。但是这两类操作的基本结构相同,考虑到实际的开发情况,所以本节主要讲解字节内存流的使用。

ByteArraylnputStream类的主要方法

序号   方法     类型     描述 
1 public ByteArrayInputStream(byte[] buf) 构造 将全部的内容写入内存之中
2 public ByteArrayInputStream(byte[] buf,int offset. int length)构造将指定范围的内容写入到内存之中

ByteArrayOutputStream 类的主要方法

序 号         方 法                类 型                 描 述 
1 public ByteArrayOutputStream() 构造 创建对象
2 public void write(int b) 普通 将内容从内存中输出
3 toString() 使用平台的默认字符集将缓冲区内容转换为字符串解码字节

【例12.33】使用内存操作流完成一个大写字母转换为小写字母的程序

package jiaqi;
import java.io.*;
//写入内存,然后读取
public class demo399_1
{

	public static void main(String[] args) throws Exception
	{
		String str = "HELLOWORLD";
		//向内存输入
		ByteArrayInputStream bis = new ByteArrayInputStream(str.getBytes());
		//从内存输出
		ByteArrayOutputStream bos = new ByteArrayOutputStream();
		
		int temp=0;
		
		while((temp=bis.read())!=-1)//内存读取
		{
			char c = (char)temp;
			bos.write(Character.toLowerCase(c));//内存输出
		}
		
		String newstr = bos.toString();//使用平台的默认字符集将缓冲区内容转换为字符串解码字节
		
		bis.close();
		bos.close();
		
		System.out.println(newstr);
		
	}

}

内存操作流的使用。
内存操作流一般在生成一些临时信息时才会使用,如果将这些临时信息保存在文件中,则代码执行完之后肯定还要删除这个临时文件,那么此时使用内存操作流是最合适的 关于内存流的实际应用,读者可以结合本系列的后一本图书Java Web深入学习。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿斯卡码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值