1

私のAndroidアプリケーションでは、いくつかのデータと写真を収集してモバイルに投げます。

その後、これらすべてをオブジェクトに挿入し、その後、このオブジェクトをサーバーに送信します。

このオブジェクトをサーバーに送信する前に、データのサイズと、このデータをサーバーに送信するために使用されたキロバイト数をユーザーに表示したいと考えています。ここでは、データのみがサーバーに送信されていることを示すprogressBarを使用しています。

ここで私が欲しいのは、最初にデータをサーバーに送信する前に、データのサイズを示し、progressBar を開始した後にデータが転送された回数と名前の変更回数を示しています。

私はこのようなオブジェクトを送信しています:

public class ServerData implements Serializable {
// some code
}
4

1 に答える 1

2

これを行う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();
        }
于 2013-07-01T08:03:17.950 に答える