如何以千字节(kb)或字节为单位获取对象的大小

时间:2013-07-01 07:34:17

标签: java android object size

在我的Android应用程序中,它收集一些数据和照片扔移动。

之后,它将所有这些内容插入到一个对象中,然后将该对象发送到服务器。

在将此对象发送到服务器之前,我想向用户显示数据的大小以及用于将此数据发送到服务器的killobyte数。 这里我使用的是 progressBar ,它只显示数据正在发送到服务器。

这里是我想要的,在将数据首先发送到服务器之前,它首先显示数据的大小,并在启动progressBar之后如何传输数据以及重命名多少。

我发送的内容是这样的:

public class ServerData implements Serializable {
// some code
}

1 个答案:

答案 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();
        }