为了账号安全,请及时绑定邮箱和手机立即绑定

Java(Android)利用socket传输图片出了问题...

Java(Android)利用socket传输图片出了问题...

蜡笔小新的Qe 2018-06-24 21:21:05
/** 现在要实现的功能是:app端从图库中选择一张图片放到ImageView上,然后发送到服务端,放到指定文件夹下. */ byte [] mIconGetBytes()//这是写的一个返回图片的字节数组的方法 {     Bitmap bm =((BitmapDrawable) mIcon.getDrawable()).getBitmap();//mIcon就是一个ImageView     ByteArrayOutputStream baos = new ByteArrayOutputStream();     bm.compress(Bitmap.CompressFormat.PNG, 100, baos);     return baos.toByteArray(); } /** 传输的时候执行的代码 */ DataOutputStream dos=new DataOutputStream(socket.getOutputStream()); byte [] tx=mIconGetBytes(); dos.write(tx); dos.flush(); /** 服务端接收的代码 */ byte[] bytes=new byte[1000*1024]; FileOutputStream out = new FileOutputStream("d:\\mIcon\\"+name+".bmp");     in.read(bytes); out.write(bytes); out.flush(); out.close();然后有的图片可以传过来,但是有的图片只穿了一部分就像这样还请各路大神帮帮忙啊┭┮﹏┭┮
查看完整描述

1 回答

?
cxxyjsj

TA贡献119条经验 获得超22个赞

服务端接收代码要循环read,每次将读取的有效字节写入到文件中

查看完整回答
反对 回复 2018-06-26
  • 蜡笔小新的Qe
    蜡笔小新的Qe
    能详细说一下吗?我现在就是拿到了一个完整的字节数组,我该怎样循环读取啊??
  • cxxyjsj
    cxxyjsj
    int len = 0; while((len = in.read(bytes)) > 0) { out.write(bytes, 0, len); }
  • 1 回答
  • 1 关注
  • 1249 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信