实现了文件的上传,文件的上传其实就是自己组合成Post表单的形式进行Http的Post发送,这一篇要实现的是文件的下载,其实下载文件与打开网页是一样的,打开网页是将内容显示出来,保存文件就是保存到文件中即可。
实现的代码基本如下:
public void downFile(String url, String path, String fileName)
throws IOException {
if (fileName == null || fileName == "")
this.FileName = url.substring(url.lastIndexOf("/") + 1);
else
this.FileName = fileName; // 取得文件名,如果输入新文件名,则使用新文件名
URL Url = new URL(url);
URLConnection conn = Url.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
this.fileSize = conn.getContentLength();// 根据响应获取文件大小
if (this.fileSize <= 0) { // 获取内容长度为0
throw new RuntimeException("无法获知文件大小 ");
}
if (is == null) { // 没有下载流
sendMsg(Down_ERROR);
throw new RuntimeException("无法获取文件");
}
FileOutputStream FOS = new FileOutputStream(path + this.FileName); // 创建写入文件内存流,通过此流向目标写文件
byte buf[] = new byte[1024];
downLoadFilePosition = 0;
int numread;
while ((numread = is.read(buf)) != -1) {
FOS.write(buf, 0, numread);
downLoadFilePosition += numread
}
try {
is.close();
} catch (Exception ex) {
}
}
通过此代码就可以实现将内容保存到SD卡等设备上,当然要使用网络,必须得有网络的访问权限。这个需要自己添加,在这里不再添加!
上面的代码没有实现进度条功能,如果要实现进度条功能,我现在考虑到的就是使用消息进行发送提示,首先实现一个消息。
private Handler downloadHandler = new Handler() { // 用于接收消息,处理进度条
@Override
public void handleMessage(Message msg) { // 接收到的消息,并且对接收到的消息进行处理
if (!Thread.currentThread().isInterrupted()) {
switch (msg.what) {
case DOWN_START:
pb.setMax(fileSize); //设置开始长度
case DOWN_POSITION:
pb.setProgress(downLoadFilePosition); // 设置进度
break;
case DOWN_COMPLETE:
Toast.makeText(DownLoadFileTest.this, "下载完成!", 1).show(); // 完成提示
break;
case Down_ERROR:
String error = msg.getData().getString("下载出错!");
Toast.makeText(DownLoadFileTest.this, error, 1).show();
break;
}
}
super.handleMessage(msg);
}
};
这样,在下载的时候只要发送相应的消息,即可有相应的提示!不再细写
分享到:
相关推荐
在Android平台上,下载网络文件是一项常见的任务,尤其对于开发者来说,了解如何实现这一功能是至关重要的。本示例,"android 下载网络文件",旨在为初学者提供一个基础的下载教程,帮助他们掌握基本的文件下载技术...
本文将深入探讨如何在Android中实现网络文件的下载,包括使用HttpURLConnection、OkHttp以及Android DownloadManager等方法。 一、HttpURLConnection下载 HttpURLConnection是Java SDK自带的一个类,用于处理HTTP...
以上就是Android网络通信中实现文件断点下载的主要步骤。在NetMulThreadDownload这个示例中,你应该能找到具体的实现细节,包括如何配置XML资源(如string.xml中的net_path属性),以及如何组织和协调多线程下载。...
在Android平台上,开发一个应用程序以实现下载Word文档并顺利打开是一项常见的需求。下面将详细讲解这一过程中的关键知识点,以及如何结合给定的资源进行操作。 1. **Android权限管理**: 在Android中,访问网络和...
在Android平台上,开发人员经常需要处理文件操作,特别是与PDF(Portable Document Format)相关的任务,如扫描本地PDF文件、从网络下载PDF文件以及打开这些文件供用户查看。本篇文章将详细探讨如何在Android应用中...
在Android平台上,下载网络PDF文件并进行展示是一个常见的需求,特别是在开发阅读类或者文档处理类应用时。这个过程涉及到网络请求、文件存储以及第三方库的使用。以下将详细讲解实现这一功能所需的关键知识点。 ...
本话题将聚焦于如何在Android Studio中下载网络图片并将其显示在应用中,这是一个常见的需求,特别是在创建涉及UI展示的应用时。 首先,要实现这个功能,我们需要使用到Android的网络请求库,比如`Volley`、`OkHttp...
在Android开发中,实现多文件下载并展示...综上所述,实现Android多文件下载并显示进度条涉及了网络请求、多线程、文件IO、数据持久化、UI更新、错误处理等多个技术点。合理的设计和实现可以提供流畅且可靠的下载体验。
在Android平台上,利用Http协议进行文件下载是一项常见的任务,它涉及到网络编程、多线程、文件操作等多个技术领域。本文将深入探讨如何在Android中实现这个功能,主要围绕标题“Android利用Http下载文件”和提供的...
在Android开发中,下载文件是一项常见的任务,尤其在构建应用时需要从服务器获取资源或更新数据。本"Android 下载文件Demo"旨在演示如何利用字节流进行文件下载操作。在Java和Android中,输入输出流(IO流)是处理...
在Android平台上,打开网络PDF文件是一项常见的需求,无论是阅读电子书、查看文档还是处理工作,PDF格式因其良好的兼容性和稳定性而被广泛使用。本篇将详细介绍如何实现这一功能,包括PDF文件的下载以及在Android...
在Android开发中,文件下载是一项常见的任务,尤其是对于大型应用或者资源更新时,断点续传功能显得尤为重要。断点续传技术允许用户在下载过程中因网络中断或设备关闭后,从上次中断的位置继续下载,提高了用户体验...
本文将深入探讨如何构建一个简单的Android网络下载器,它支持多任务下载、多界面管理以及断点续传功能。 首先,我们要了解Android的网络编程基础。在Android中,通常使用HttpURLConnection或OkHttp库来处理HTTP请求...
在Android应用开发过程中,我们常常需要下载各种类型的网络资源,比如图片、音乐、视频或文档等。为了提供更好的用户体验,开发者通常希望能够在下载前预知这些资源的大小,从而合理安排下载计划,避免不必要的流量...
在Android开发中,TCP文件下载是一项常见的任务,它涉及到网络通信、多线程处理以及文件操作等技术。本文将详细讲解如何实现一个Android应用,利用TCP协议从PC服务器下载文件到Android设备。 首先,理解TCP...
Android提供了`DownloadManager`类,它可以更方便地处理文件下载,包括断点续传、网络变化时的恢复等。不过,`DownloadManager`是API 11及更高版本的功能。 ### 10. 考虑权限和电池优化 确保申请了`INTERNET`权限,...
原数据存放在StreamingAsset中,首次启动复制到persistentDataPath,以后进行更新和读取都在persistentDataPath中使用File进行文件操作。需要恢复书序的时候从StreamingAsset中获取即可。
Android API文档是开发者在进行Android应用开发时的重要参考资料,它详尽地介绍了Android系统的各种接口、类库和功能。这份“Android API文档完整版”包含了官方文档和具有搜索功能的版本,使得开发者能够更高效地...
本项目"AndroidHTTP网络传输文件程序"专注于演示如何在Android设备上通过HTTP协议实现文件的下载和上传操作。 ...通过这个项目,开发者可以深入理解Android网络编程,并能熟练地应用于实际项目中。
本文将深入探讨如何实现"Android APK下载文件的URL链接"以及如何判断网络状态。 首先,我们需要了解`Handler`机制。`Handler`在Android中用于线程间通信,它允许我们在主线程中更新UI。在下载APK的过程中,我们通常...