0

入力ストリーム(ソケットから)から受信したデータ(具体的には画像)をバイト配列に保存しようとしています。私は2つのオプションをチェックしました:

a。を使用しjava.io.ByteArrayOutputStreamてから、次のコードを使用します。

  InputStream in = socket.getInputStream();
  byte[] imageInBytes = in.toByteArray();

問題は、日食がメソッドを認識しないことtoByteArray()です。そのメソッドを使用するためにInputStream(この場合in)をにコピー/変更するにはどうすればよいですか?ByteArrayOutputStream

b。を使用しorg.apache.commons.io.IOUtilsてから、以下を使用します。

    InputStream in = socket.getInputStream();
    byte[] imageInBytes = IOUtils.toByteArray(in);

これをjavaビルドパスにcommons-io-2.4.jarを追加し、/ libsディレクトリにコピーしましたが、それでも想定どおりに動作せず、。が原因でエラーが発生しbyte[] imageInBytes = IOUtils.toByteArray(in);ます。

ちなみに私はジンジャーブレッドを使っています。

どちらの場合も、私はそれを正しく行っているかどうか、そして言及された問題をどのように修正するかについて疑問に思っていました。

4

1 に答える 1

-1

これを試して:

InputStream inputStream = socket.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
imageView.setImageBitmap(bitmap);

また:

InputStream inputStream = socket.getInputStream();
Drawable drawable = Drawable.createFromStream(inputStream, null);
imageView.setImageDrawable(drawable);
于 2012-12-06T18:08:56.103 に答える