你要先理解什么是流stream的概念有点类似于pipe管道,就是你只能看到一段数据,
必须顺序读取,
从开始到结束,
才能访问到全部内容
而且你事先是不知道长度的。所以上述方法,不管哪一种,都是要先把流从inputStream里读取,然后放到outStream里
这个“取”,“放”的动作可以同步,也可以异步
所以就有了上述方法的区别另外上面有些方法是经过包装的,你要追进去,才能看到内部实现
标准做法大致如下: in = openInStream();
out = openOutStream()';
byte[] buff = new byte[1024];
while (in.read(buff) != -1) {
out.write(buff);
}
必须顺序读取,
从开始到结束,
才能访问到全部内容
而且你事先是不知道长度的。所以上述方法,不管哪一种,都是要先把流从inputStream里读取,然后放到outStream里
这个“取”,“放”的动作可以同步,也可以异步
所以就有了上述方法的区别另外上面有些方法是经过包装的,你要追进去,才能看到内部实现
标准做法大致如下: in = openInStream();
out = openOutStream()';
byte[] buff = new byte[1024];
while (in.read(buff) != -1) {
out.write(buff);
}
解决方案 »
- 客户端请求信息
- 谁能提供我jsmooth软件的详细使用说明,我都快崩溃了,老打不成功
- 将服务器的图像保存到客户机的内存里
- 怎样实现KeyHandler的keyReleased方法
- 求本《JDBC数据库程序设计》电子书!
- 一个有趣的问题,可以帮助你理解String,大家来讨论啊
- super在子类中的static方法为什么不可用?
- 如何安装Sun one Studio community Edition 4 for windows
- 装了jdk,从哪里找他的文档,安装目录下怎么全是.jar
- 难道就没有人知道吗?
- 新人求教,高手来花几分钟回复下吧,谢谢了。如何通过鼠标拖拽改变JLABEL图片顺序?
- JAVA 树 叶子节点的展开
把数据 写入到 ByteArrayOutStream()这个字节数组中InputStream in = new ByteArrayInputStream(out.toByteArray())
创建 输入流,构造函数中 传递 有数据的字节数组楼主有没有看到,他两用的是同一个 字节数组,只不过 前者out是写入数据,后者in是从里面读数据这样就 所谓 的 OutputStream 转换成 InputStream方法2和方法3 也是一样的; 只要写入数据 和 读取数据是在操作同一个东西就可以了
把数据 写入到 ByteArrayOutStream()这个字节数组中InputStream in = new ByteArrayInputStream(out.toByteArray())