转自:http://www.eoeandroid.com/thread-101028-1-1.html
下载一个网络文件的函数如下
java代码:
1.public static File downLoadFile(String httpUrl) {
2. // TODO Auto-generated method stub
3. final String fileName = "nq.apk";
4. File tmpFile = new File("//sdcard");
5. if (!tmpFile.exists()) {
6. tmpFile.mkdir();
7. }
8. final File file = new File("//sdcard//" + fileName);
9. try {
10. URL url = new URL(httpUrl);
11. try {
12. HttpURLConnection conn = (HttpURLConnection) url
13. .openConnection();
14. InputStream is = conn.getInputStream();
15. FileOutputStream fos = new FileOutputStream(file);
16. byte[] buf = new byte[256];
17. conn.connect();
18. double count = 0;
19. if (conn.getResponseCode() >= 400) {
20.// Toast.makeText(DownFile.this, "连接超时", Toast.LENGTH_SHORT)
21.// .show();
22. Log.i("time","time exceed");
23. } else {
24. while (count <= 100) {
25. if (is != null) {
26. int numRead = is.read(buf);
27. if (numRead <= 0) {
28. break;
29. } else {
30. fos.write(buf, 0, numRead);
31. }
32. } else {
33. break;
34. }
35. }
36. }
37. conn.disconnect();
38. fos.close();
39. is.close();
40. } catch (IOException e) {
41. // TODO Auto-generated catch block
42. e.printStackTrace();
43. }
44. } catch (MalformedURLException e) {
45. // TODO Auto-generated catch block
46. e.printStackTrace();
47. }
48. return file;
49. }
如果是一个apk文件,打开并且安装的函数为
java代码:
1.private void openFile(File file) {
2. // TODO Auto-generated method stub
3. Log.e("OpenFile", file.getName());
4. Intent intent = new Intent();
5. intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
6. intent.setAction(android.content.Intent.ACTION_VIEW);
7. intent.setDataAndType(Uri.fromFile(file),
8. "application/vnd.android.package-archive");
9. startActivity(intent);
10.}