1
我是Android新手,希望獲得一些幫助,以瞭解爲什麼getContentLength()
返回-1
當我嘗試獲取XML數據時。getContentLength在嘗試獲取XML文件時返回-1
的XML網址是
String url = "http://www.systembolaget.se/api/assortment/products/xml";
int count;
try {
URL url = new URL(aurl[0]);
URLConnection conexion = url.openConnection();
conexion.connect();
int lengthOfFile = conexion.getContentLength();
Log.d("ANDRO_ASYNC", "Lenght of file: " + lengthOfFile);
InputStream input = new BufferedInputStream(url.openStream(), 10240);
File fileDir = getFileFolder(AndroAsync.this);
File file = new File (fileDir, "systembolaget.xml");
FileOutputStream outputStream = new FileOutputStream(file);
byte data[] = new byte[4096];
long total = 0;
while ((count = input.read(data)) != -1) {
total += count;
publishProgress(""+(int)((total*100)/ lengthOfFile));
outputStream.write(data, 0, count);
}
outputStream.flush();
outputStream.close();
input.close();
所有幫助是非常讚賞
謝謝! :)
文件說,它返回「'-1'如果該字段未設置或無法表示爲int」,所以這就是原因 –
是的,我已閱讀文檔,但我不明白他們的意思由此它不能被表示爲一個int。 – speccaN
如果它對於int而言太大,則不能將其表示爲int,但更有可能它根本沒有設置。 – EJP