12.5内存操作流

  • 12.5内存操作流
  • ``ByteArraylnputStream``类的主要方法
  • ``ByteArrayOutputStream ``类的主要方法
  • 【例12.33】使用内存操作流完成一个大写字母转换为小写字母的程序


12.5内存操作流

在 流 的 操 作 中 除 了 进 行 文 件 的 输 入 与 输 出 操 作 之 外 , 也 可 以 针 对 内 存 进 行 同 样 的 操 作 。 假 设 现 在 某 一 种 应 用 需 要 进 行 i o 操 作 , 但 又 不 希 望 在 磁 盘 上 产 生 一 些 文 件 , 就 可 以 将 内 存 当 作 一 个临时文件进行操作。在Java中,针对内存操作提供有两组类:

(1)字节内存流:ByteArraylnputStream (内存字节输入流)、ByteArrayOutputStream (内存字节输出流)。

(2) 字符内存流:CharArrayReader (内存字符输入流)、Char Array Writer (内存字符输出流)。

java将数据写入主内存 java将信息写入内存的类_内存操作

本节以内存字节流讲解为主。
字节内存流与字符内存流两者唯一的区别就在于操作数据类型上,字节内存流操作使用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深入学习。