Android_利用URL实现下载功能
来源:互联网 发布:csol刀战优化辅助 编辑:程序博客网 时间:2024/05/19 19:43
/**
* 申请访问网络权限
*/
<uses-permission android:name="android.permission.INTERNET"/>
class HttpDownloader{
// 创建URL对象
private URL url;
/**
* 下载文本文件
*/
public String download(String urlStr){
private StringBuffer sb = new StringBuffer();
private String line = null;
private BufferedReader reader = null;
try{
// 创建一个Url连接
url = new URL(urlStr);
// 创建一个Http连接
HttpURLConnection urlConn = (HttpURLConnect) url.openConnection();
// 使用IO流读取数据
reader = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
while ( null != (line = reader.readLine() )
{
sb.append(line);
}
} catch(Exception e){
e.printStackTrack();
} finally{
try{
reader.close();
} catch(Exception e){
printStackTrack();
}
}
}
return sb.toString();
}
/** 得到当前设备SD卡的目录 ******************************************
* Environment.getExternalStorageDirectory();
*
*** 访问SD卡的权限
* android.permission.WRITE_EXTERNAL_STORAGE
********************************************************************/
public String getSDPATH{
return Environment.getExternalStorangeDirectory() + "/";
}
/* 在SD卡上创建文件 */
public File createSDFile(String fileName){
File file = new File(getSDPATH + fileName);
file.createNewFile();
return file;
}
/* 在SD卡上创建目录 */
public File createSDDir(String dirName){
File dir = new File(dirName);
dir.mkDir();
return dir;
}
/* 判断SD卡上的文件是否存在 */
public boolean isFileExist(String fileName){
File file = new File(fileName);
return file.exists();
}
/* 将一个InputStream里面的数据写入到SD卡中 */
public File write2SDFromInput( String dirName, String fileName, InputStream in){
File file = null;
OutputStream output = null;
try{
createSDDir(dirName);
file = createSDFile(dirName + fileName);
output = new OutputStream(file);
Byte [] byte = Byte[4 * 1024];
while ( -1 != in.read(buffer) ){
output.write(buffer);
}
output.flush();
}
catch (Exception e){
e.printStackTrace();
}
finally{
try{
out.close;
} catch (Exception e){
e.printStackTrace();
}
}
return file;
}
/**
* 下载Mp3文件
* 返回值: 整型 <-1:下载失败>; <0:下载文件成功>; <1:文件已存在>
* 参数: url, 存储路径, 存储文件名
*/
public int downFile(String urlStr, String path, String fileName){
private InputStream inputStream = null;
try{
if ( isFileExist(path + fileName) ){
return 1;
}
else{
inputStream = getInputStreamFromUrl(urlStr);
File returnFile = write2SDFromInput(path, fileName, inputStream);
}
}
catch(Exception e){
e.printStackTrace();
return -1;
}
finally{
try{
inputStream.close();
} catch(Exception e){
e.printStackTrace();
}
}
return 0;
}
/* 根据URL得到输入流 */
public InputStream getInputStreamFromUrl(String urlStr){
InputStream inputStream = null;
try{
url = new URL(urlStr);
HttpUrlConnection urlConn = (HttpUrlConnect) url.openConnection();
InputStream inputStream = urlConn.getInputStream();
}
catch(Exception e){
e.printStackTrace();
}
return inputStream;
}
* 申请访问网络权限
*/
<uses-permission android:name="android.permission.INTERNET"/>
class HttpDownloader{
// 创建URL对象
private URL url;
/**
* 下载文本文件
*/
public String download(String urlStr){
private StringBuffer sb = new StringBuffer();
private String line = null;
private BufferedReader reader = null;
try{
// 创建一个Url连接
url = new URL(urlStr);
// 创建一个Http连接
HttpURLConnection urlConn = (HttpURLConnect) url.openConnection();
// 使用IO流读取数据
reader = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
while ( null != (line = reader.readLine() )
{
sb.append(line);
}
} catch(Exception e){
e.printStackTrack();
} finally{
try{
reader.close();
} catch(Exception e){
printStackTrack();
}
}
}
return sb.toString();
}
/** 得到当前设备SD卡的目录 ******************************************
* Environment.getExternalStorageDirectory();
*
*** 访问SD卡的权限
* android.permission.WRITE_EXTERNAL_STORAGE
********************************************************************/
public String getSDPATH{
return Environment.getExternalStorangeDirectory() + "/";
}
/* 在SD卡上创建文件 */
public File createSDFile(String fileName){
File file = new File(getSDPATH + fileName);
file.createNewFile();
return file;
}
/* 在SD卡上创建目录 */
public File createSDDir(String dirName){
File dir = new File(dirName);
dir.mkDir();
return dir;
}
/* 判断SD卡上的文件是否存在 */
public boolean isFileExist(String fileName){
File file = new File(fileName);
return file.exists();
}
/* 将一个InputStream里面的数据写入到SD卡中 */
public File write2SDFromInput( String dirName, String fileName, InputStream in){
File file = null;
OutputStream output = null;
try{
createSDDir(dirName);
file = createSDFile(dirName + fileName);
output = new OutputStream(file);
Byte [] byte = Byte[4 * 1024];
while ( -1 != in.read(buffer) ){
output.write(buffer);
}
output.flush();
}
catch (Exception e){
e.printStackTrace();
}
finally{
try{
out.close;
} catch (Exception e){
e.printStackTrace();
}
}
return file;
}
/**
* 下载Mp3文件
* 返回值: 整型 <-1:下载失败>; <0:下载文件成功>; <1:文件已存在>
* 参数: url, 存储路径, 存储文件名
*/
public int downFile(String urlStr, String path, String fileName){
private InputStream inputStream = null;
try{
if ( isFileExist(path + fileName) ){
return 1;
}
else{
inputStream = getInputStreamFromUrl(urlStr);
File returnFile = write2SDFromInput(path, fileName, inputStream);
}
}
catch(Exception e){
e.printStackTrace();
return -1;
}
finally{
try{
inputStream.close();
} catch(Exception e){
e.printStackTrace();
}
}
return 0;
}
/* 根据URL得到输入流 */
public InputStream getInputStreamFromUrl(String urlStr){
InputStream inputStream = null;
try{
url = new URL(urlStr);
HttpUrlConnection urlConn = (HttpUrlConnect) url.openConnection();
InputStream inputStream = urlConn.getInputStream();
}
catch(Exception e){
e.printStackTrace();
}
return inputStream;
}
0 0
- Android_利用URL实现下载功能
- 利用URL实现简单下载网页的功能
- android_分享图片功能实现
- 利用URL下载
- Android_登录界面功能和实现详解
- Android_购物车实现输入加减功能
- 利用WinInet下载指定URL
- 利用WinInet下载指定URL
- android利用service实现下载apk自动更新功能
- 通过URL实现下载
- Android_实例_利用RadioButton实现分类筛选
- Android_实现获取手机内apk并分享的功能
- 利用重写url机制简单实现验证码换一张的功能
- java 通过 URL 类和 URLConnection类 以及输入流实现文件下载功能
- 利用分类实现功能
- 利用UrlRewriter实现重写url
- 利用HttpModule实现URL重写
- PHP 实现URL爬虫功能
- hdu 4630 No Pain No Game 树状数组
- 【java基础】Java内存机制
- LeetCode刷题笔录Binary Tree Post Order Traversal
- 细数六大支持智能手机的JS框架
- 黑马程序员-iOS学习日记(六)面向对象-核心语法(一)
- Android_利用URL实现下载功能
- 10-0. 说反话 (20)
- Eclipse导入Android项目的正确方法
- failed to lazily initialize a collection of role
- 安卓air应用热更新法
- 解决: failed to lazily initialize a collection of role: no session or session was closed问题
- 自然语言处理中的一些问题
- 关于struts2的配置
- 浅谈土地利用图件缩编方法的应用研究