Android之文件下载
来源:互联网 发布:linux kill命令 编辑:程序博客网 时间:2024/05/05 04:24
在学校没事做,慢慢地开始接触Android开发,也是从基础开始,一点点地开始学习,希望把每天所学的东西记录与分享
关于Android文件下载:
1、下面是一个下载工具类:
package com.zqy.utils;import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;public class HttpDownloader { private URL url = null; /** * 根据URL下载文件,前提是这个文件当中的内容是文本,函数的返回值就是文件当中的内容 * 1.创建一个URL对象 * 2.通过URL对象,创建一个HttpURLConnection对象 * 3.得到InputStram * 4.从InputStream当中读取数据 * @param urlStr * @return */ public String download(String urlStr) { StringBuffer sb = new StringBuffer(); String line = null; BufferedReader buffer = null; try { // 创建一个URL对象 url = new URL(urlStr); // 创建一个Http连接 HttpURLConnection urlConn = (HttpURLConnection) url .openConnection(); // 使用IO流读取数据 buffer = new BufferedReader(new InputStreamReader(urlConn .getInputStream())); while ((line = buffer.readLine()) != null) { sb.append(line); } } catch (Exception e) { e.printStackTrace(); } finally { try { buffer.close(); } catch (Exception e) { e.printStackTrace(); } } return sb.toString(); } /** * 该函数返回整形 -1:代表下载文件出错 0:代表下载文件成功 1:代表文件已经存在 */ public int downFile(String urlStr, String path, String fileName) { InputStream inputStream = null; try { FileUtils fileUtils = new FileUtils(); if (fileUtils.isFileExist(path + fileName)) { return 1; } else { inputStream = getInputStreamFromUrl(urlStr); File resultFile = fileUtils.write2SDFromInput(path,fileName, inputStream); if (resultFile == null) { return -1; } } } catch (Exception e) { e.printStackTrace(); return -1; } finally { try { inputStream.close(); } catch (Exception e) { e.printStackTrace(); } } return 0; } /** * 根据URL得到输入流 * * @param urlStr * @return * @throws MalformedURLException * @throws IOException */ public InputStream getInputStreamFromUrl(String urlStr) throws MalformedURLException, IOException { url = new URL(urlStr); HttpURLConnection urlConn = (HttpURLConnection) url.openConnection(); InputStream inputStream = urlConn.getInputStream(); return inputStream; }}
2、文件工具类:
package com.zqy.utils;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import android.os.Environment;public class FileUtils { private String SDPATH; public String getSDPATH() { return SDPATH; } public FileUtils() { //得到当前外部存储设备的目录 // /SDCARD SDPATH = Environment.getExternalStorageDirectory() + "/"; } /** * 在SD卡上创建文件 * * @throws IOException */ public File creatSDFile(String fileName) throws IOException { File file = new File(SDPATH + fileName); file.createNewFile(); return file; } /** * 在SD卡上创建目录 * * @param dirName */ public File creatSDDir(String dirName) { File dir = new File(SDPATH + dirName); dir.mkdir(); return dir; } /** * 判断SD卡上的文件夹是否存在 */ public boolean isFileExist(String fileName){ File file = new File(SDPATH + fileName); return file.exists(); } /** * 将一个InputStream里面的数据写入到SD卡中 */ public File write2SDFromInput(String path,String fileName,InputStream input){ File file = null; OutputStream output = null; try{ creatSDDir(path); file = creatSDFile(path + fileName); output = new FileOutputStream(file); byte buffer [] = new byte[4 * 1024]; while((input.read(buffer)) != -1){ output.write(buffer); } output.flush(); } catch(Exception e){ e.printStackTrace(); } finally{ try{ output.close(); } catch(Exception e){ e.printStackTrace(); } } return file; }}
3、从网上下东西,要在AndroidManifest.xml里配置如下信息:
<uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
4、android手机做下载文件时,报了如下异常:
java.net.ConnectException: localhost/127.0.0.1:8080 -
Connection refused
报错在这一段代码
Java代码
URL url = new URL("http://localhost:8080/mp3/resource.xml");
URLConnection urlconn = url.openConnection();
原来模拟器默认把localhost或者127.0.0.1当做本身了
在网上查了下,在模拟器上可以用10.0.2.2代替127.0.0.1和localhost
另外如果是在局域网环境可以用 192.168.0.x或者192.168.1.x(根据具体配置)连接本机
- android 之文件下载
- Android之文件下载
- Android之文件下载
- Android之文件下载
- Android之文件下载
- android 之文件下载
- Android之文件下载
- android之文件下载
- Android之文件下载
- Android开发之文件下载
- android 开发之文件下载
- Android文件下载之断点续传
- Android之网络文件下载
- Android开发之文件下载
- [转]android 之文件下载
- android示例之文件下载
- android 开发之文件下载
- Android开发之文件下载
- Linux内核抢占实现机制分析
- jquery实现 选项卡
- zoj 3687
- 使用搜索引擎不能不知道的几个搜索技巧
- 【上海交大比赛】Data Structures Spring 2013 Exam 1
- Android之文件下载
- 11300Spreading the Wealth
- jquery选项卡
- 解决无法安装Flash Player的问题
- 创建数据库以及创建与文件组的数据库
- GridView如何进行排序
- 7、请求转发与重定向
- EJB 3.1 新特性介绍(二)
- 读取Excel文件