1 什么是内存流
当输出流的目的,和输入流的源是内存时,这样的流称之为内存流。(就是将数据写入RAM)

2 内存流的构造方法
1. ByteArrayInputStream(byte buf[]) 创建一个 ByteArrayInputStream 并把指定该输入流的数据源buf[]。2.
2.ByteArrayOutputStream();创建一个 ByteArrayOutputStream 并把分配一个32字节(默认大小)的缓冲区。
3. ByteArrayOutputStream(int size); 创建一个 ByteArrayOutputStream 并分配自定 size 字节的缓冲区
3 读取内存数据和写入到内存数据
3.1 读取内存数据
try {
String testContent = "ABCDEFG";//程序运行的时候 这数据本身就在内存,
ByteArrayInputStream bais = new ByteArrayInputStream(testContent.getBytes());//创建内存输入流,指定要读取的数据 byte[]
int read;
while ((read = bais.read()) != -1) {//和普通流读取字节是一样的(也可以嵌套管道)
System.out.println((char) read);
}
bais.close();//关闭流,释放内存资源
}...
3.2 写入数据到内存
// ByteArrayOutputStream baos = new ByteArrayOutputStream(int size);//设置内部缓存大小为1。
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();//创建内存输出流,把数据写入到内存中
String s1 = "hhhhh";
String s2 = "aaaaa";
byte[] b1 = s1.getBytes();
byte[] b2 = s2.getBytes();
baos.write(b1);//和普通的输出流写输入一样,(也可以嵌套管道)
baos.write(b2);// 将 b2 byte[] 存放到 baos 中缓存
// 得到 ByteArrayOutputStream 内部的 byte[]中以缓存的数组
byte[] byteArray = baos.toByteArray();
String string = baos.toString();
System.out.println(string);
baos.flush();
baos.close();
} catch (IOException e) {
e.printStackTrace();
}
4 ByteArrayOutputStream 常用方法:toByteArray(), toString()
1. toByteArray() 方法;是将 ByteArrayOutputStream 对象所写入到内存的数据 转换成 byte[] 返回。
2. toString() 方法 ;是将 ByteArrayOutputStream 对象所写入到内存的数据 转换成 String 返回。
提示:内存流 除了 ByteArrayInputStream 与 ByteArrayOutputStream 主要处理字节数据之外,对应的还有:
- CharArrayReader 与 CharArrayWriter 主要处理字符数组。
- StringReader 与 StringWriter 主要处理字符串。