我有這段代碼,我希望能夠告訴我有多少數據我已經下載(並很快把它放在進度條中),然後通過我的薩克斯解析器解析結果。如果我基本上註釋了上面的所有內容,請參閱//x.parse(new InputSource(request.getInputStream()));行並交換xr.parse的結束,它工作正常。但目前,我的薩克斯解析器告訴我我什麼都沒有。這是與事情有關嗎? 閱讀(緩衝區)部分?爲什麼在使用InputStream Read之後,我的Sax解析器不會產生結果?
此外,就像一個說明,請求是一個帶有各種簽名的HttpURLConnection。
/*Input stream to read from our connection*/
InputStream is = request.getInputStream();
/*we make a 2 Kb buffer to accelerate the download, instead of reading the file a byte at once*/
byte [ ] buffer = new byte [ 2048 ] ;
/*How many bytes do we have already downloaded*/
int totBytes,bytes,sumBytes = 0;
totBytes = request.getContentLength() ;
while (true) {
/*How many bytes we got*/
bytes = is.read (buffer);
/*If no more byte, we're done with the download*/
if (bytes <= 0) break;
sumBytes+= bytes;
Log.v("XML", sumBytes + " of " + totBytes + " " + ( (float) sumBytes/ (float) totBytes) *100 + "% done");
}
/* Parse the xml-data from our URL. */
// OLD, and works if comment all the above
//xr.parse(new InputSource(request.getInputStream()));
xr.parse(new InputSource(is))
/* Parsing has finished. */;
任何人都可以幫助我嗎?
親切的問候,
安迪
+1指向實際進行監控的源代碼,但他需要編寫非swing版本。 – 2010-03-26 10:10:57