猿问

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

/**
现在要实现的功能是: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();

然后有的图片可以传过来,但是有的图片只穿了一部分

就像这样

还请各路大神帮帮忙啊┭┮﹏┭┮


蜡笔小新的Qe
浏览 1262回答 1
1回答

cxxyjsj

服务端接收代码要循环read,每次将读取的有效字节写入到文件中
随时随地看视频慕课网APP

相关分类

Java
Android
我要回答