Commons IO(Apache)copyURLToFile不起作用

时间:2018-12-15 19:31:32

标签: java apache-commons

我正在编写一些代码,以通过一组链接自动从网站下载文件。我可以通过传递网站来建立一系列链接,但是以下代码不起作用:

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 :(得分:1)

一个潜在的问题可能是您正在捕获异常并且未以任何方式对其进行处理,因此,如果引发异常,则不会以任何方式得到通知。尝试打印该异常的堆栈跟踪,并查看是否抛出任何异常。

无论如何,对我有用的是使用BufferedReaderBufferedWriter

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