使用Http方式下载文本类型的文件及其他类型的文件
2011-04-14 13:41
579 查看
使用HTTP方式从网络上下载txt文本文件,并返回文本文件中的内容。
此方法只支持下载文本类型的文件
Android访问网络需要添加网络访问权限
在manifest.xml中添加如下代码
下载各种类型的文件,并将文件写如到SD卡。
代码中调用了FileUtils类,这个类里面定义的是对SD卡的操作函数。请看下一篇日志。
此方法只支持下载文本类型的文件
/*** * 通过URL下载XML文件 * @param urlStr XML文件的URL地址 * @return XML文件的内容 */ public String DownloadXML(String urlStr) { //定义个StringBuffer类型的变量用于存储下载到得xml文件的内容 StringBuffer sBuffer = new StringBuffer(); String line = null; BufferedReader bufferedReader = null; try { //创建一个URL对象存储下载地址 URL url = new URL(urlStr); //创建一个url连接 HttpURLConnection urlConn = (HttpURLConnection)url.openConnection(); //下载网络上的XML文件 //在网络上下载到得数据为字节流,用InputStreamReader转换成字符流,然后转换成BufferedReader类型使用readline方法方便操作 bufferedReader = new BufferedReader(new InputStreamReader(urlConn.getInputStream())); //循环读取buuferedReader中的每一行,赋值给sBuffer对象 while ((line = bufferedReader.readLine()) != null) { sBuffer.append(line); } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return sBuffer.toString(); }
Android访问网络需要添加网络访问权限
在manifest.xml中添加如下代码
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
下载各种类型的文件,并将文件写如到SD卡。
package paj.HttpDownload; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import paj.Utils.FileUtils; public class HttpDownloaderFile { /*** * 下载各种类型文件 * @param urlStr 下载URL地址 * @param path 保存路径 * @param fileName 文件名 * @return 0:文件下载成功 1:文件已经存在 -1:下载失败 * @throws IOException */ public int downFile(String urlStr , String path , String fileName) throws IOException{ InputStream inputStream = null; //实例化FileUtils,我自定义的用户功能类 FileUtils fileUtils = new FileUtils(); //测试文件是否存在 if(fileUtils.isFileExist(fileName, path)){ //文件存在返回1 return 1; }else { try { //获取下载的文件数据流 inputStream = getInputStreamFormUrl(urlStr); //把文件写入到SD卡中,其中调用了用户功能类中的函数 File resulFile = fileUtils.write2SDFromInput(path, fileName, inputStream); //如果数据为空则下载失败,返回-1 if (resulFile == null) { return -1; } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } finally{ inputStream.close(); } } //下载成功返回0 return 0; } /*** * 得到下载的数据 * @param urlStr 下载文件的URL地址 * @return 返回下载到得数据流 * @throws IOException */ public InputStream getInputStreamFormUrl(String urlStr) throws IOException { //创建一个URL对象 URL url = new URL(urlStr); //创建一个URL对象的链接 HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection(); //获取文件数据流 InputStream inputStream = urlConnection.getInputStream(); //返回获取到得数据 return inputStream; } }
代码中调用了FileUtils类,这个类里面定义的是对SD卡的操作函数。请看下一篇日志。
相关文章推荐
- 使用Socket 完成HTTP post方式的文本及文件上传 demo
- 使用 HttpWebRequest 下载任意类型的文件
- HttpClient使用post方式模拟表单提交数据到服务器并下载服务器文件
- HttpClient 使用get方式发送数据到服务器并下载服务器文件
- pb使用http方式上传下载文件
- HttpClient使用post方式模拟表单提交数据到服务器并下载服务器文件
- 在ruby 2 和rails 4 里面使用send_file 下载文件的时候。在IE下面中文名出现乱码的处理方式
- 反射机制及开源框架xUitls的使用,使用HttpUtils通过断点续传下载文件
- 下面的类是文件下载类,支持文件的多线程断点续传,使用该类的即可安全、高效的下载任何类型的二进制文件:
- HttpWebRequest 下载网页Html代码 POST方式(站内使用了form方式) System.Net.WebException (417) Expectation failed
- Http一次上传多个文件(类型可以不同)的方式
- 服务器IIS无法提供某种扩展名的文件的下载或访问某种类型文件提示http 404 错误时的解决办法
- 【常用代码】文件下载(http方式)
- Android 网络应用重点———使用HttpGet 下载apk文件并安装
- 使用WebView实现文件下载的两种方式
- ASP.NET 2.0 HttpHandler实现对某种文件类型权限保护(示例代码下载)
- ASP.NET 2.0 HttpHandler实现对某种文件类型权限保护(示例代码下载)
- Flex与.NET互操作(五):使用FileReference+HttpHandler实现文件上传/下载
- 使用 CInternetSession 封装多线程 http 文件下载
- C#中使用HttpDownLoadHelper下载文件实例