0

下面的方法将 InputStream 中的数据作为字符串返回,其中将使用 StringBuilder 构造字符串

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

但这种方法不适用于图像数据。最好的解决方案是构建类似的方法,但返回字节 [] 而不是字符串。能告诉我怎么做吗?

4

1 回答 1

2

希望这是您正在寻找的。我将此函数用于我的 Imgur 应用程序,该应用程序需要 ByteArray 形式的图像。

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 回答