android中的httpdown的工具类
来源:互联网 发布:淘宝主图白底图要求 编辑:程序博客网 时间:2024/06/15 06:32
package com.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;
/**
* 封装了一些下载文件的类,可以在Activity文件中直接调用
* @author zl
*/
public class HttpDownLoad {
private URL url = null;
/**
* 根据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;
}
/**
* 根据URL下载文件,前提是这个文件当中的内容是文本,函数的返回值就是文件中的内容
* 1.创建一个URL对象
* 2.通过URL对象,创建一个HttpURLConnection对象
* 3.得到InputStream
* 4.从InputStream中读取数据
*/
public String downloadText(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()));
//使用循环将读取的一行一行的数据存入到StringBuffer对象中
while((line = buffer.readLine()) != null){
sb.append(line);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
try {
buffer.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return sb.toString();
}
/**
* 根据URL下载文件,这个文件可以是其他文件,返回这个文件下载是否成功
* @param urlStr --地址
* @param path --存储路径
* @param fileName --存储文件名
* @param againDown --布尔值判断否在文件已存在时下载
* @return
* 返回值:-1-->下载失败,0-->下载成功,1-->文件存在
*/
public int downFile(String urlStr,String path,String fileName,Boolean againDown){
//生成一个InputStream对象
InputStream inputStream = null;
//创建FileUtils对象,用于判断要下载的文件是否存在
FileUtils fileUtils = new FileUtils();
boolean isFileUtils = fileUtils.isFileExist(path+fileName);
try {
//文件存在且不重新下载时,返回1
if(isFileUtils && againDown == false){
return 1;
}
//文件存在且要重新下载时或文件不存在时下载
else if((isFileUtils && againDown == true) || isFileUtils == false){
//根据URL输入流下载
inputStream = getInputStreamFromUrl(urlStr);
//调用存入SD卡的方法,并返回存入结果
File resultFile = fileUtils.write2SDFromInput(path, fileName, inputStream);
//存入为空时,返回-1
if(resultFile == null){
return -1;
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
//出现异常时,返回-1
return -1;
} finally{
try {
inputStream.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//都正常时,返回0
return 0;
}
}
- android中的httpdown的工具类
- android中的缩略图工具类
- android的工具类
- Android中的工具类总结一
- android中的手势识别工具类
- Android AOSP源码中的工具类
- Android中的Monkey工具
- Android中的Monkey工具
- Android中的screencast工具
- android中的lint工具
- 【Tech-Android-Other】Android中的内存管理的工具使用方法
- Android SDK中的android工具
- 如何让Android中的 Base64工具类支持2.2以下的系统
- 如何让Android中的 Base64工具类支持2.2以下的系统
- Android 检测应用中的UI卡顿的工具
- android的http工具类
- Android常用的工具类
- Android常用的工具类
- SSH部署到tomcat内存溢出-OutOfMemoryError 的解决办法
- MySQL update 语句的正确用法
- .net 不能同步调试?
- 根据产品价格或者销售量查询的排序算法-------我所开发程序遇到的问题
- 黑马程序员_内省
- android中的httpdown的工具类
- 打印控件调查
- Lua package 使用
- 设计模式——状态,C# 语言范例
- Introduction to Topic Modeling learning(链)
- android中如何删除布局中的控件
- android中对sd卡的操作
- springMVC工作原理
- IOS自动化的打渠道包