2012-10-25 314 views
0

我有一些使用httpCore util copyURLtoFile()複製的代碼,但我似乎無法在文檔中找到有關超時的任何內容,例如我可以使用httpClient。它拉的文件不應該拉出來,但取決於這是......有趣的。在org.apache.commons.io.FileUtils.copyURLToFile上設置超時時間?

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

如果第三個行應超時,程序有沒有辦法拋出基於運行時錯誤或檢查threadInterrupted()

回答

1

你必須看着老的javadoc。在當前版本中(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

+0

太棒了,正是我所需要的。 –

+0

谷歌是你的朋友。 (或者至少他是*我的*朋友,我可以向你介紹他!) –

+0

我其實是谷歌它,這是奇怪的,我沒有找到它。作爲一個快速放在一邊,MS或秒中的超時? –

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的。

P.S .:我也下載了源代碼(http://www.carfab.com/apachesoftware//commons/io/source/commons-io-2.4-src.zip),以確保上述方法真的不存在(再也?)和FileUtils.java裏面確實沒有這種方法。

+0

我找到它,使用commons-io 2.4我可以看到FileUtils.java的第1483行上的函數。 http://grepcode.com/file/repo1.maven.org/maven2/commons-io/commons-io/2.4/org/apache/commons/io/FileUtils.java?av=f#1484 – Zitrax

0

檢查你的maven依賴關係,在classpath中可能會有另一個common-io jar的舊版本。我遇到過同樣的問題。