这段代码 可以将文件下载下来 可是在解析 下载下拉的文件的时候 确报 下面的异常,将同路径下的 另一个 xml 文件放入解析的 路径文件里面就可以解析出来
[code="java"]07-02 07:22:24.068: W/System.err(11862): java.lang.IllegalArgumentException: InputStream cannot be null[/code]
[code="java"]
serviceVersion = MainActivity.serviceVersion;
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectNetwork() // or .detectAll() for all detectable problems
.penaltyLog()
.build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects()
.detectLeakedClosableObjects()
.penaltyLog()
.penaltyDeath()
.build());
downloadpath = "http://www.kskjkf.com/version/update/"+1+".xml";
//建立下载文件的保存路径
String dirName= Environment.getExternalStorageDirectory()+"/update/";
System.out.println("下载文件的保存路径"+dirName);
File file = new File(dirName);
if(file.exists()){
file.mkdir();
}
//准备拼接新的文件名
newFileName = "update.xml";
newFileName = dirName+newFileName;
System.out.println("新文件名字是:"+newFileName);
File f = new File(newFileName);
if(f.exists()){
System.out.println("如果存在就删除");
f.delete();
}
try {
URL url = new URL(downloadpath);
URLConnection conn = url.openConnection();
System.out.println("连接文件路径"+url);
int contentLength = conn.getContentLength();
System.out.println("文件长度===="+contentLength);
InputStream is = conn.getInputStream();
byte[] bs = new byte[1024];
int len;
OutputStream os = new FileOutputStream(newFileName);
System.out.println("OS的长度"+os);
while((len=is.read())!=-1){
os.write(bs,0, len);
}
System.out.println("下载完毕。。。。。");
Toast.makeText(UpdateActivity.this, "下载成功", Toast.LENGTH_LONG).show();
os.close();
is.close();
new Thread(new ResolveUpdateXml()).start();
} catch (Exception e) {
e.printStackTrace();
}
//new Thread(new ResolveUpdateXml()).start();
}
//new Thread(new ResolveUpdateXml()).start();
[/code]