12.5内存操作流
- 12.5内存操作流
- ``ByteArraylnputStream``类的主要方法
- ``ByteArrayOutputStream ``类的主要方法
- 【例12.33】使用内存操作流完成一个大写字母转换为小写字母的程序
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深入学习。