【问题标题】:java download image directly to specified areajava直接下载图片到指定区域
【发布时间】:2014-03-24 03:13:54
【问题描述】:

我已经尝试下载这样的图像:

File file4 = new File("C:\\Users\\" + user + "\\AppData\\Roaming"
                + "\\.MINECRAFT2D\\Recources\\"
                + "tileset_texture_new_now.png");
try {
    Image image = null;
    URL url = new URL("http://www.mediafire.com/view/"
                    + "htgmcgtg7yo5swy/tileset_texture_new_now.png");
    InputStream in = new BufferedInputStream(url.openStream());
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    byte[] buf = new byte[1024];
    int n = 0;
    while (-1 != (n = in.read(buf))) {
         out.write(buf, 0, n);
    }
    out.close();
    in.close();
    byte[] response = out.toByteArray();
    FileOutputStream fos = new FileOutputStream(file4);
    fos.write(response);
    fos.close();
} catch (Exception e) {}

但它会在该位置留下不可见的图像。图片会显示:“照片库无法打开此照片或视频。文件可能不受支持、损坏或损坏。”有办法解决吗?

【问题讨论】:

    标签: java download inputstream


    【解决方案1】:

    试试这样:

    byte[] response = out.toByteArray();
    

    创建字节数组后关闭流

     while (-1 != (n = in.read(buf))) {
         out.write(buf, 0, n);
    }
    byte[] response = out.toByteArray();
    out.close();
    in.close();
    

    【讨论】:

      【解决方案2】:

      您的网址指向“http://www.mediafire.com/view/htgmcgtg7yo5swy/tileset_texture_new_now.png”。它不能解析为图像/png。我相信这就是图像损坏的原因。

      查看来自Apache IO Commons 的 FileUtils.copyURLToFile(URL, File)。它可能会帮助您下载文件。

      【讨论】:

      • OHHH 我刚刚意识到,那是观看网址,而不是“下载”网址。它现在正在工作。谢谢!
      猜你喜欢
      • 1970-01-01
      • 2012-08-27
      • 1970-01-01
      • 1970-01-01
      • 2016-11-03
      • 1970-01-01
      • 2018-06-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多