我正在編寫一個小程序來檢索大量的XML文件。該程序的工作類型,但無論從我使用的stackoverflow的解決方案,我本地保存的每個XML文件都會遺漏文件的末尾。通過「文件的結尾」,我的意思是大約5-10行xml代碼。這些文件長度不同(~500-2500行),總長度似乎對丟失位的大小沒有影響。目前,代碼如下所示:從URL複製XML文件返回不完整的文件
package plos;
import static org.apache.commons.io.FileUtils.copyURLToFile;
import java.io.File;
public class PlosXMLfetcher {
public PlosXMLfetcher(URL u,File f) {
try {
org.apache.commons.io.FileUtils.copyURLToFile(u, f);
} catch (IOException ex) {
Logger.getLogger(PlosXMLfetcher.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
我一直在使用BufferedInputStream
和ReadableByteChannel
也試過。我曾嘗試在線程中運行它,我嘗試使用read
和readLine
。每個解決方案都給我一個不完整的XML文件作爲返回。
在我的一些測試中(我不記得是哪個,抱歉),我得到了一個套接字連接重置錯誤 - 但上面的代碼執行時沒有錯誤消息。
我手動下載了一些XML文件,以檢查它們是否在遠程服務器上實際完成 - 它們是哪一個。
嘗試copyURLToFile(URL來源,文件目的地,詮釋connectionTimeout,INT readTimeout),也許是連接超時。 – reese
我剛剛嘗試過,超時時間爲10000,結果完全相同。 – ipoga