内存操作流(内存流基本操作)
一·内存操作流的定义
之前所有的操作,都是针对文件进行的 IO 处理,那么除了文件之外,IO 的操作也可以发生在内存之中。
这种流就称为内存操作流。文件流的操作里面一定会产生一个文件数据(不管最后这个文件数据是否被保留。)那么现在的要求就是需要发生 IO 处理。那么又不希望产生文件。
这种情况下就可以使用内存操作为操作的终端。
在 Java 中有两类数据流:
·字节内存流:
ByteArrayInputStream、ByteArrayOutputStream;
·字符内存流:CharArrayReader、CharArrayWriter
观察 ByteArrayInputStream 和 ByteArrayOutputStream 类中提供的构造方法
ByteArrayInputStream 类构造:
public ByteArrayInputStream(byte[] buf)
ByteArrayOutputStream 类构造:
public ByteArrayOutputStream()
二·范例:通过内存流实现一个大小写转换的操作
public class TestDemo {
public static void main(string[] args) throws Exception {
String msg ="hello world !!!";
//实例化 Inputstream 类对象,实例化的时候需要将你操作的数据保存到内存之中,最终你读取的就是你设置的内容
Inputstream input=new ByteArrayInputstream(msg.getBytes()); Outputstream output =new ByteArrayoutputstream();
int temp=0;
while((temp =input.read())!=-1) {
output.write(Character.toUpperCase(temp));//每个字节数据进行处理
} //此时所有的数据都在 Outputstream 类中了
System.out.println(output);//直接输出对象,调用 tostring() input.close();
output.close();}
这个时生了 io 操作,但是没有文件产生。
所以可以理解为一个临时文件方式处理。