服务器端如何将客户端发送流转换为byte数组?

topyyii 2009-04-22 09:09:03
ServletInputStream is = request.getInputStream();
is.readLine(new byte[1024], 0, 1024);
is.readLine(new byte[1024], 0, 1024);
is.readLine(new byte[1024], 0, 1024);
is.readLine(new byte[1024], 0, 1024);
byte[] data = new byte[93240];

然后如何将次流转化为byte[] 该如何做呢???
这里用的是文件上传 还有此流会有协议尾 该如何去除呢?
...全文
80 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qybao 2009-04-25
  • 打赏
  • 举报
回复
[Quote=引用楼主 topyyii 的帖子:]
Java codeServletInputStream is = request.getInputStream();
is.readLine(new byte[1024], 0, 1024);
is.readLine(new byte[1024], 0, 1024);
is.readLine(new byte[1024], 0, 1024);
is.readLine(new byte[1024], 0, 1024);
byte[] data = new byte[93240];


然后如何将次流转化为byte[] 该如何做呢???
这里用的是文件上传 还有此流会有协议尾 该如何去除呢?
[/Quote]


ServletInputStream is = request.getInputStream();
byte[] buf = new byte[1024];
byte[] data = new byte[93240];
int cnt = 0;
while (is.readLine(buf, 0, 1024) > 0) {
System.arraycopy(buf, 0, data, cnt, buf.length);
cnt += buf.length;
}


把协议尾也转成byte[],然后从data中去掉协议尾byte[]长度的信息
jinxfei 2009-04-25
  • 打赏
  • 举报
回复
然后如何将次流转化为byte[] 该如何做呢???
你说的是讲多个byte[]合并成一个byte[]数组吧?可以用System.arrayCopy

这里用的是文件上传 还有此流会有协议尾 该如何去除呢?
用正则表达式
ben0759 2009-04-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 Dantin 的回复:]
协议尾可以用正则表达式去除
[/Quote]

正解
careers1111 2009-04-25
  • 打赏
  • 举报
回复
流应该只朝一个方向流动
对于一些流,比如ByteArrayOutputStream,可以转换成字串
然后通过字串处理
Dantin 2009-04-24
  • 打赏
  • 举报
回复
协议尾可以用正则表达式去除

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧