Как создать объект файл из объекта URL

Мне нужно создать объект File из объекта URL Мое требование  Мне нужно создать файл-объект веб-изображения (например, логотип googles)

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

Ответ 1

Использовать Apache Common IO FileUtils:

import org.apache.commons.io.FileUtils

FileUtils.copyURLToFile(url, f);

Метод загружает содержимое url и сохраняет его в f.

Ответ 2

Вы можете использовать ImageIO, чтобы загрузить изображение с URL-адреса, а затем записать его в файл. Что-то вроде этого:

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

Это также позволяет при необходимости конвертировать изображение в другой формат.

Ответ 3

Чтобы создать файл с URL-адреса HTTP, вам необходимо загрузить содержимое с этого 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();

Загруженный файл будет найден в корне вашего проекта: {project}/downloaded.jpg

Ответ 4

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

Ответ 5

Так как Java 7

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

Ответ 6

import java.net.*; 
import java.io.*; 
class getsize { 
    public static void main(String args[]) throws Exception {
        URL url=new URL("http://www.supportyourpm.in/jatin.txt"); //Reading
        URLConnection yc = url.openConnection();
        BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
        String inputLine;
        while ((inputLine = in.readLine()) != null) 
            System.out.println(inputLine);
        in.close();

        //Getting size
        HttpURLConnection conn = null;
        conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod("HEAD");
        conn.getInputStream();
        System.out.println("Length : "+conn.getContentLength());
    } 
}