Java中IO流的使用方法之内存操作流

来源:互联网 发布:linux chroot命令 编辑:程序博客网 时间:2024/05/22 02:37

整理源于Java核心技术精讲

某个操作必须发生IO操作,但是又不希望有一些临时文件产生,肯定无法使用之前的文件操作流。为解决问题,提供了内存操作流,即对内存进行操作的终端,以发生IO操作关系。

  • 字节内存操作流:内存输入流(ByteArrayInputStream) 内存输出流(ByteArrayOutputStream)
  • 字符内存操作流:内存输入流(CharArrayReader) 内存输出流(CharArrayWriter)

注:这里的流的形式和之前的文件操作流有所不同
ByteArrayInputStream:程序->InputStream->输出到内存
ByteArrayOutputStream:程序<-OutputStream<-内存

使用内存操作流完成一个字符串大小写字母的转换操作

import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;public class TestDemo {    public static void main(String[] args) throws IOException{        String str = "hello world.";        InputStream input = new ByteArrayInputStream(str.getBytes());//传入内存,注意这里的构造        OutputStream output = new ByteArrayOutputStream();//准备从内存中读取数据        int temp = 0;        while((temp=input.read())!=-1)        {            output.write((char)Character.toUpperCase(temp));//从内存输出        }        String newStr = output.toString();//取数据        output.close();        input.close();        System.out.println(newStr);    }}

延伸:
在javaEE开发技术中,AJAX技术通过服务器生成XML数据后交给前台显示的操作是最为常见的一种。会使用到XML解析工具(DOM,JDOM,DOM4J等),并且需要IO流的支持,此时最好的选择就是内存操作流。

0 0