Android文件,安卓实现下载功能,android实现文件下载功能

Android文件,安卓实现下载功能,android实现文件下载功能

这篇文章主要为大家详细介绍了机器人实现文件下载功能,安卓在网络上下载文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

机器人在网络上下载文件,供大家参考,具体内容如下

步骤:

1.使用超文本传送协议协议下载文件

-创建一个HttpURLConnection对象:HttpURLConnection URL连接=(HttpURLConnection)URL。打开连接();

-获取一个输入流对象:urlConn.getInputStream()

-访问网络的权限:android.permission.INTERNET

2.将下载的文件写入SDCARD

-得到当前设备南达科他州卡的目录:环境。getexternalstragedirectory()

-访问南达科他州卡的权限:安卓。许可。写_外部_存储

代码:

activity_main.xml

相对布局xmlns:Android=' http://模式。安卓。' com/apk/RES/Android '

xmlns:tools=' http://模式。安卓。' com/tools '

Android:layout _ width=' match _ parent '

Android:layout _ height=' match _ parent '

Android:padding bottom=' @ dimen/activity _ vertical _ margin '

Android:padding left=' @ dimen/activity _ horizontal _ margin '

Android:padding right=' @ dimen/activity _ horizontal _ margin '

Android:padding top=' @ dimen/activity _ vertical _ margin '

工具:上下文='。'主要活动'

纽扣

android:id='@ id/btn_txt '

Android:layout _ width=' match _ parent '

Android:layout _ height=' wrap _ content '

android:text='下载lrc' /

纽扣

android:id='@ id/btn_mp3 '

Android:layout _ width=' match _ parent '

Android:layout _ height=' wrap _ content '

Android:layout _ below=' @ id/BTN _ txt '

android:text='下载mp3' /

/RelativeLayout

MainActivity.java

包com。恰伊。下载;

导入com。恰伊。utils。http下载器;

导入安卓。app。活动;

导入安卓。OS。捆绑;

导入安卓。查看。查看;

导入安卓。查看。查看。onclick侦听器;

导入安卓。小部件。按钮;

公共类主要活动扩展活动{

字符串urlStr _ txt=' http://192。168 .56 .1:8080/MP3/wan。LRC ';

字符串urlStr _ MP3=' http://192。168 .56 .1:8080/MP3/wan。MP3 ';

string path=' MP3/';

String fileName=' wan.mp3

私有按钮downloadTxtButton

私有按钮下载MP3按钮

@覆盖

受保护的void onCreate(Bundle saved instancestate){

超级棒。oncreate(savedInstanceState);

setContentView(r . layout。活动_主);

downloadTxtButton=(Button)findViewById(r . id。BTN _ txt);

downloadtxtbutton。setonclicklistener(new DownloadTxtListener());

下载MP3 Button=(Button)findViewById(r . id。BTN _ MP3);

下载MP 3按钮。setonclicklistener(新下载MP3 listener());

}

//下载歌词文件按钮监听器

类DownloadTxtListener实现OnClickListener {

@覆盖

公共void onClick(视图五){

thread t=new downloadtxthread();

t。start();

系统。出去。println(' txt-');

}

}

//下载歌词文件线程

类DownloadTxtThread扩展线程{

@覆盖

公共无效运行(){

HttpDownloader HttpDownloader=new HttpDownloader();

字符串LRC=http下载程序。下载(urlStr _ txt);

系统。出去。println(LRC);

}

}

//下载MP3文件文件文件按钮监听器

类下载MP3监听器实现OnClickListener {

@覆盖

公共void onClick(视图五){

thread h=new down MP 3 thread();

h。start();

系统。出去。println(' MP3-');

}

}

//下载MP3文件文件文件线程

类向下MP3线程扩展线程{

@覆盖

公共无效运行(){

HttpDownloader HttpDownloader=new HttpDownloader();

int result=http下载程序。downfile(urlStr _ MP3,路径,文件名);

System.out.println(结果);

}

}

}

工具类:

HttpDownloader.java

包com。恰伊。utils

导入Java。io。缓冲阅读器;

导入Java。io。文件;

导入Java。io。io异常;

导入Java。io。inputstream

导入Java。io。inputstreamreader

导入Java。网。httpurl连接;

导入Java。网。malformedurexception

导入Java。网。网址;

公共类HttpDownloader {

私有URL url=null

/**

* 根据统一资源定位器下载文件,前提是这个文件当中的内容是文本,函数的返回值就是文件当中的内容

* 1.创建一个统一资源定位器对象

* 2.通过统一资源定位器对象,创建一个HttpURLConnection对象

* 3.得到InputStram

* 4.从输入流当中读取数据

* @param urlStr

* @返回

*/

公共字符串下载(字符串urlStr) {

字符串缓冲区sb=新字符串缓冲区();

字符串行=空

BufferedReader buffer=null

尝试{

//创建一个统一资源定位器对象

url=新URL(urlStr);

//创建一个超文本传送协议(超文本传输协议的缩写)连接

http urlconnection URL conn=(http urlconnection)URL。打开连接();

//使用超正析象管(图片Orthicon)流读取数据

buffer=new buffered reader(new InputStreamReader(URL conn . getinputstream()));

while ((line=buffer.readLine())!=null) {

某人(somebody的简写)追加(行);

}

} catch(异常e) {

e。printstacktrace();

}最后{

尝试{

buffer.close().

} catch(异常e) {

e。printstacktrace();

}

}

归还某人。tostring();

}

/**

* 该函数返回整形-1:代表下载文件出错0:代表下载文件成功1:代表文件已经存在

*/

public int downFile(字符串urlStr,字符串路径,字符串文件名){

输入流输入流=空

尝试{

file utils file utils=new file utils();

if (fileUtils.isFileExist(路径文件名)){

返回1;

}否则{

inputStream=getInputStreamFromUrl(urlStr);

文件结果文件=文件实用程序。写入2 sdfrominput(路径,文件名,输入流);

if (resultFile==null) {

return-1;

}

}

} catch(异常e) {

e。printstacktrace();

return-1;

}最后{

尝试{

输入流。close();

} catch(异常e) {

e。printstacktrace();

}

}

返回0;

}

/**

* 根据统一资源定位器得到输入流

*

* @param urlStr

* @返回

* @ throws MalformedURLException

* @抛出IOException

*/

公共InputStream getinputstreamfrourl(字符串urlStr)

抛出MalformedURLException,IOException {

url=新URL(urlStr);

http urlconnection URL conn=(http urlconnection)URL。打开连接();

InputStream InputStream=URL conn . getinputstream();

返回输入流

}

}

FileUtils.java

包com。恰伊。utils

导入Java。io。文件;

导入Java。io。文件输出流;

导入Java。io。io异常;

导入Java。io。inputstream

导入Java。io。输出流;

导入安卓。OS。环境;

公共类文件工具{

私有字符串SDPATH

公共字符串getSDPATH() {

返回SDPATH

}

public FileUtils() {

//得到当前外部存储设备的目录

///SDCARD

SD路径=环境。getexternalsratedirectory()“/”;

}

/**

* 在南达科他州卡上创建文件

*

* @抛出IOException

*/

公共文件creatSDFile(字符串文件名)引发IOException {

文件文件=新文件(SDPATH文件名);

文件。创建新文件();

返回文件;

}

/**

* 在南达科他州卡上创建目录

*

* @param目录名

*/

公共文件creatSDDir(字符串目录名){

文件目录=新文件(SD路径目录名);

导演。mkdirs();

返回目录;

}

/**

* 判断南达科他州卡上的文件夹是否存在

*/

public boolean isFileExist(字符串文件名){

文件文件=新文件(SDPATH文件名);

返回文件。exists();

}

/**

* 将一个输入流里面的数据写入到南达科他州卡中

*/

公共文件write2SDFromInput(字符串路径,字符串文件名,输入流输入){

文件file=空

输出流输出=空

尝试{

creatSDDir(路径);

file=creatSDFile(路径文件名);

output=新文件输出流(文件);

字节缓冲区[]=新字节[4 * 1024];

while((input.read(buffer))!=-1){

输出.写入(缓冲);

}

输出。flush();

}

捕捉(异常e){

e。printstacktrace();

}

最后{

尝试{

输出。close();

}

捕捉(异常e){

e。printstacktrace();

}

}

返回文件;

}

}

如果不能下载,请先将窗子防火墙关闭。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • windowsandroid手机版下载,windowsandroid安装apk
  • windowsandroid手机版下载,windowsandroid安装apk,WindowsAndroid 安装教程详解
  • android调用webview方法,androidwebview是什么,Android 中 WebView 的基本用法详解
  • android传感器高级编程,Android传感器,Android编程之光线传感器用法详解
  • android.app.Dialog,android自定义dialog对话框,Android开发笔记之-Dialog的使用详解
  • android 图片视频轮播框架,androidlayout轮播图,Android实现炫酷轮播图效果
  • android里的viewpager,安卓自定义view流程,Android自定义引导玩转ViewPager的方法详解
  • android里的viewpager,android viewpager详解
  • android里的viewpager,android viewpager详解,Android自定义超级炫酷的ViewPage指示器
  • android调用webview方法,androidwebview是什么
  • android设置控件宽度,android获取屏幕宽度和高度
  • android设置控件宽度,android获取屏幕宽度和高度,Android中获取控件宽高的4种方法集合
  • android蓝牙开发的基本流程,安卓蓝牙app开发教程
  • android蓝牙开发的基本流程,安卓蓝牙app开发教程,android蓝牙简单开发示例教程
  • android菜单栏,android菜单控件
  • 留言与评论(共有 条评论)
       
    验证码: