将图像(从URL)保存到Java代码位置

时间:2017-02-17 06:37:53

标签: java

我想通过以下代码将图像(从网址)保存到我的磁盘。 我希望代码将此图像保存在java代码的位置。例如,如果源java代码位于D:\ example \ saveimage.java中,则此图像保存在D:\ example \ image.jpg中。此位置可能会在安装过程中更改。 我怎样才能做到这一点?它的java代码是什么? 谢谢

public static void main(String[] args) throws Exception {
    String imageUrl ="http://imgs.yooz.ir/yooz/walls/yooz-950625.jpg";

    String destinationFile = "E:\\Picture\\Wallpaper.jpg";
    //destinationFile =  location of the source java code

    saveImage(imageUrl, destinationFile);
}

public static void saveImage(String imageUrl, String destinationFile) throws IOException {
    URL url = new URL(imageUrl);

    byte[] b = new byte[2048];
    int length;

    try {
        InputStream is=url.openStream();
            OutputStream os = new FileOutputStream(destinationFile);
            while ((length = is.read(b)) != -1) {
                os.write(b, 0, length);
            }
            is.close();
            os.close();
        }
    }catch (UnknownHostException e){
        e.printStackTrace();
    }
}

2 个答案:

答案 0 :(得分:0)

String destinationFile = "E:\\Picture\\Wallpaper.jpg";

这是一个直接的解决方案。你可以使用相对寻址

例如这里使用:

String destinationFile = "Wallpaper.jpg";

只需将图像保存在Wallpaper.jpg中,并保存在与java文件相同的文件夹中

答案 1 :(得分:0)

有几种方法可以做到这一点:

  1. 将文件保存在当前目录中,或保存到相对于当前目录的路径
  2. 具有属性文件中目录的路径,属性文件位于类路径
  3. 定义系统属性
  4. 将路径作为参数传递
  5. 等...