当前位置: 代码迷 >> 综合 >> Mars Android视频学习笔记——01_18_文件下载
  详细解决方案

Mars Android视频学习笔记——01_18_文件下载

热度:21   发布时间:2024-01-12 11:05:52.0

转载时请注明转自:http://blog.csdn.net/sam_zhang1984

交流可加新浪微博:Android开发人

 

 

文件下载就涉及到两个问题:

1.          下载 :使用网络协议下载文件,这里主要是讲利用 HTTP 协议下载。

2.          保存 :文件可以保存到手机内存,也可以下载到 SDCard ,下到 SD 卡是比较常用的。

 

文件下载的主要步骤有:

1)   创建一个 HttpURLConnection 对象。通过 URL openConnection 方法,就可以得到一个 HttpURLConnection 对象,所以要先创建一个 URL 对象;

2)   通过 HttpURLConnection 对象的 getInputStream 方法可以得到一个 InputStream 对象;

3)   获取网络访问的权限。

 

文件保存(保存到 SDCard ):

1)         得到设备 SD 卡的目录:使用 Environment.getExternalStorageDirectory 得到 SD 卡的目录;

2)         获取访问 SD 卡的权限;

 

3)         SD 卡里写入文件,这里涉及到 JAVA 的文件操作。

 

SD 卡里面写入文件就涉及到了 JAVA IO 操作了,向卡里加入文件主要有以下几个步骤:

a)          创建存放文件的目录;

b)         在目录中创建文件;

 

c)         根据文件对象创建一个 OutPutStream 向文件里写入内容。

 

 

JAVA IO 操作各种类的记法:

1、   stream 结尾的是字节流, reader writer 结尾的是字符流;

2、   Buffer 开头的是缓冲处理流;

3、   OutputSteamWriter :即是把一个输出字节流,转换成一个输了字符流。

4、   处理流方法名后面是 stream ,则其参数是 Inputsteam 类型的字节流;如果处理流方法名后面是 reader writer ,则其参数是 reader writer 类型的字符流;

IO流的操作相对比较复杂,方法、类型都比较多,还有得加强基础!

下面是一个好的IO编程习惯:

良好的编程习惯 是先写 flush ,再写 close 。因为 close 直接就把数据流给释放掉,

但如果这时缓冲区里还有数据,就无法再向目标写入了,所以应该先调用 flush 把缓冲区

的所有数据写到目的地。

  相关解决方案