你要先理解什么是流stream的概念有点类似于pipe管道,就是你只能看到一段数据,
必须顺序读取,
从开始到结束,
才能访问到全部内容
而且你事先是不知道长度的。所以上述方法,不管哪一种,都是要先把流从inputStream里读取,然后放到outStream里
这个“取”,“放”的动作可以同步,也可以异步
所以就有了上述方法的区别另外上面有些方法是经过包装的,你要追进去,才能看到内部实现
标准做法大致如下:    in = openInStream();
    out = openOutStream()';
    byte[] buff = new byte[1024];
    while (in.read(buff) != -1) {
          out.write(buff);
    }

解决方案 »

  1.   

    OutputStream out = new ByteArrayOutStream();
    把数据 写入到 ByteArrayOutStream()这个字节数组中InputStream in = new ByteArrayInputStream(out.toByteArray())
    创建 输入流,构造函数中 传递 有数据的字节数组楼主有没有看到,他两用的是同一个 字节数组,只不过 前者out是写入数据,后者in是从里面读数据这样就 所谓 的 OutputStream 转换成 InputStream方法2和方法3 也是一样的; 只要写入数据 和 读取数据是在操作同一个东西就可以了
      

  2.   

    colachens   你讲的你自己试试吧OutputStream out = new ByteArrayOutStream();
    把数据 写入到 ByteArrayOutStream()这个字节数组中InputStream in = new ByteArrayInputStream(out.toByteArray())