92 votes

Comment créer un objet fichier à partir d'un objet URL (image)

J'ai besoin de créer un objet File à partir d'un objet URL Mon exigence est J'ai besoin de créer un objet fichier d'une image Web (disons le logo de Google)

 URL url = new URL("http://google.com/pathtoaimage.jpg");
File f = create image from url object

91voto

gigadot Points 5419

Utiliser Apache Common IO's FileUtils :

 import org.apache.commons.io.FileUtils

FileUtils.copyURLToFile(url, f);

La méthode télécharge le contenu de url et l'enregistre dans f .

54voto

user1246369 Points 71

Depuis Java 7

 File file = Paths.get(url.toURI()).toFile();

27voto

Costi Ciudatu Points 13020

Vous pouvez utiliser ImageIO pour charger l'image à partir d'une URL, puis l'écrire dans un fichier. Quelque chose comme ça:

 URL url = new URL("http://google.com/pathtoaimage.jpg");
BufferedImage img = ImageIO.read(url);
File file = new File("downloaded.jpg");
ImageIO.write(img, "jpg", file);

Cela vous permet également de convertir l'image dans un autre format si nécessaire.

14voto

Liviu T. Points 8894

Afin de créer un fichier à partir d'une URL HTTP, vous devez télécharger le contenu à partir de cette URL :

 URL url = new URL("http://www.google.ro/logos/2011/twain11-hp-bg.jpg");
URLConnection connection = url.openConnection();
InputStream in = connection.getInputStream();
FileOutputStream fos = new FileOutputStream(new File("downloaded.jpg"));
byte[] buf = new byte[512];
while (true) {
    int len = in.read(buf);
    if (len == -1) {
        break;
    }
    fos.write(buf, 0, len);
}
in.close();
fos.flush();
fos.close();

Le fichier téléchargé se trouve à la racine de votre projet : {project}/downloaded.jpg

13voto

Arthur bauer Points 565

Vous pouvez convertir le URL en String et l'utiliser pour créer un nouveau File . par exemple

 URL url = new URL("http://google.com/pathtoaimage.jpg");
File f = new File(url.getFile());

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X