IO (Apache) Commons copyURLToFile не работает - PullRequest
0 голосов
/ 15 декабря 2018

Я пишу код для автоматической загрузки файлов с веб-сайта с учетом набора ссылок.Я могу создать массив ссылок, передавая сайт, но следующий код не работает:

public static void downloadFiles(String[] links) {
    for (String link : links) {
        try {
            URL u = new URL(link);
            File f = new File("D:" + File.separator + "Java Programming" + File.separator + "File Downloader" + File.separator + "output" + File.separator + link.split("/")[link.split("/").length - 1]);
            //System.out.println(f.toString());
            FileUtils.copyURLToFile(u, f);
        } catch (Exception e) {}
    }
}

Я импортировал файл commons-io-2.6.jar в eclipse ипровел исследование онлайн, но не может найти никого с решением.Я пытался запустить код с уже созданным каталогом output и без него, но в любом случае файлы не загружаются.Помощь будет оценена.

1 Ответ

0 голосов
/ 15 декабря 2018

Одна потенциальная проблема может заключаться в том, что вы перехватываете исключение и не обрабатываете его каким-либо образом, поэтому, если возникнет исключение, вы не получите никакого уведомления.Попытайтесь напечатать трассировку стека этого исключения и посмотрите, не сгенерированы ли какие-либо исключения.

В любом случае, мне помогло использование BufferedReader и BufferedWriter:

// Create URL object
URL url = new URL(singleUrl);
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));

File downloadedFile = new File(DOWNLOAD_FOLDER+generateFilename()+".html");

BufferedWriter writer = new BufferedWriter(new FileWriter(downloadedFile));

// read each line from stream till end
String line;
while ((line = reader.readLine()) != null) {
    writer.write(line);
}

reader.close();
writer.close();
...