程序中的输入和输出不只可以从文件出来,也可以将输出的位置设置在内存上。此时就需要使用到 ByteArrayInputStream、ByteArrayOutputStream 来完成输入和输出。
ByteArrayInputStream:主要完成将内容写入到内存中
ByteArrayOutputStream:主要完成将内存中的数据输出
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);
}
}
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
此时的所有操作全部是在内存中完成的
内存操作流一般在生成一些临时信息时才会使用,而这些临时信息如果要保存在文件中,则代码执行完后还要删除这个临时文件,因此此时使用内存操作流最合适