在我的Android应用程序中,它收集一些数据和照片扔移动。
之后,它将所有这些内容插入到一个对象中,然后将该对象发送到服务器。
在将此对象发送到服务器之前,我想向用户显示数据的大小以及用于将此数据发送到服务器的killobyte数。 这里我使用的是 progressBar ,它只显示数据正在发送到服务器。
这里是我想要的,在将数据首先发送到服务器之前,它首先显示数据的大小,并在启动progressBar之后如何传输数据以及重命名多少。
我发送的内容是这样的:
public class ServerData implements Serializable {
// some code
}
答案 0 :(得分:1)
这样做的一种方法是将其写入缓冲区流,找到它的大小,然后将其作为字节数组写入服务器。
ByteArrayOutputStream ostream = new ByteArrayOutputStream ();
try {
ObjectOutputStream obStream = new ObjectOutputStream(ostream);
obStream.writeObject(yourObject);
byte[] rawObject = ostream.toByteArray();
ostream.close();
int size = rawObject.length;
//edit for your case
OutputStream socketOut = socket.getOutputStream();
socketOut.write(rawObject);
socketOut.close();
} catch (IOException e) {
e.printStackTrace();
}