在org.apache.commons.io.FileUtils.copyURLToFile上设置超时?

时间:2012-10-25 12:54:30

标签: java httpclient apache-commons

我有一些代码使用httpCore util copyURLtoFile()进行复制,但我似乎无法在文档中找到任何关于超时的内容,就像我使用httpClient一样。它所拉的文件不应该拉出来,但取决于那个....有趣。

    URL pjmUrl = new URL("myFile");
    File projLoad = new File("projLoad.txt");
    org.apache.commons.io.FileUtils.copyURLToFile(pjmUrl, projLoad);

如果第三行超时,程序无法根据运行时抛出错误或检查threadInterrupted()

3 个答案:

答案 0 :(得分:1)

你必须看着旧的javadocs。在当前版本(2.4)中,这里是copyURLToFile方法的重载,它有两个超时参数:

  public static void copyURLToFile(URL source,
                             File destination,
                             int connectionTimeout,
                             int readTimeout)
                      throws IOException

参考: https://commons.apache.org/proper/commons-io/javadocs/api-2.4/org/apache/commons/io/FileUtils.html

答案 1 :(得分:1)

不正确,重载方法

FileUtils.copyURLToFile(URL source,
                        File destination,
                        int connectionTimeout,
                        int readTimeout)

在最新的2.4中不存在。版本,虽然该方法在Javadoc中列出:

http://commons.apache.org/proper/commons-io/javadocs/api-release/org/apache/commons/io/FileUtils.html#copyURLToFile(java.net.URL,%20java.io.File,%20int,%20int)

我确信我正在使用2.4版本的Apache commons-io。

PS:我还下载了源代码(http://www.carfab.com/apachesoftware//commons/io/source/commons-io-2.4-src.zip),以确保上述方法确实不存在(不再?),而FileUtils.java内部确实没有这样的方法。

答案 2 :(得分:0)

检查你的maven依赖关系,你的类路径中可能还有另一个旧版本的common-io jar。我有同样的问题。