0

以下のメソッドは、StringBuilder を使用して文字列が構築される文字列として InputStream からデータを返します。

String getBytes(InputStream is) throws IOException{
   StringBuilder sb = new StringBuilder();
   int ch;
   while ((ch = is.read()) != -1) sb.append((char)ch);
   is.close();
   return sb.toString();
}

ただし、この方法は画像データに対しては正しく機能しません。最善の解決策は、同様のメソッドを構築することですが、string ではなく byte[] を返します。方法を教えてもらえますか?

4

1 に答える 1

2

うまくいけば、これはあなたが探しているものです。ByteArray 形式の画像を必要とする Imgur アプリケーションにこの関数を使用しています。

static File imgFile;
static ByteArrayOutputStream imgStream = new ByteArrayOutputStream();

public static void bufferImage() {
        try {
                BufferedImage bufImg = ImageIO.read(imgFile);
                ImageIO.write(bufImg, getExtension(imgFile), imgStream);
         } catch (IOException ex) {
                System.out.println("Error buffering image");
           }   
    }

必要に応じて、getExtension 関数も提供できます。

于 2012-04-20T01:39:03.940 に答える