(Java)内存操作流

程序中的输入和输出不只可以从文件出来,也可以将输出的位置设置在内存上。此时就需要使用到 ByteArrayInputStream、ByteArrayOutputStream 来完成输入和输出。

ByteArrayInputStream:主要完成将内容写入到内存中
ByteArrayOutputStream:主要完成将内存中的数据输出

(Java)内存操作流_第1张图片
ByteArrayInputStream 类的主要方法:
在这里插入图片描述
ByteArrayInputStream 主要是使用构造方法将全部的内容读取到内存中,如果要想把内容从内存中取出,则可以使用 ByteArrayOutputStream 类。
ByteArrayOutputStream 类的主要方法:
在这里插入图片描述
使用内存操作流完成将大写字母转换为小写字母的程序

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;

public class Root{
    public static void main(String[] args) {
        String str = "HELLO WORLD";
        ByteArrayInputStream bis = null;//声明一个内存的输入流
        ByteArrayOutputStream bos = null;//声明一个内存的输出流
        bis = new ByteArrayInputStream(str.getBytes());//向内存中输出内容
        bos = new ByteArrayOutputStream();//准备从 ByteArrayOutputStream 中读取数据
        int temp =0;
        while ((temp = bis.read()) != -1) {
            char c = (char)temp;//将读取的数字变为字符
            //每次都写入一个字符,不断写入
            bos.write(Character.toLowerCase(c));//将字符变为小写
        }
        String newStr = bos.toString();//取出内容
        try{
            bis.close();
            bos.close();
        }catch (IOException e){
            e.printStackTrace();
        }
        System.out.println(newStr);
    }
}

(Java)内存操作流_第2张图片
此时的所有操作全部是在内存中完成的

内存操作流一般在生成一些临时信息时才会使用,而这些临时信息如果要保存在文件中,则代码执行完后还要删除这个临时文件,因此此时使用内存操作流最合适

你可能感兴趣的:(Java,学习笔记)