原文链接:http://snmoney.blog.163.com/blog/static/440058201010222342599/
这里开始,有点让我这个菜鸟晕乎... 上午我甚至还没搞清楚 InputStream 是什么,和 OutputStream 有什么不同..
其实现在还没完全懂,emmm 先说个大概吧 字面意思理解了...数据流,是的
简单地说我想从网上下载个文件,然后保存到SDCard里,那么遵循的是下面这个大概的步骤。可以理解成从一个大水罐A里取水存到另一个空水罐B里
1. 要知道确切地 uri
2. 建立 HttpUrlConnection(还有URL.getContent等办法,不逐一列举),然后这里可以做一些确保工作之类的~~例如检测返回的状态码确保网络连通,目标文件不会404或者500之类
3. 可以 getInputStream , 于是得到一个is = InputStream //找到装满水的罐子A了,嘿
4. 然后~ 弄个 byte[] b, 用来做数据的搬运工具, InputStream.read(b) 这样读出来 //b就是杯子
5. 在同一时间创建一个 File f =new File(..路径..文件名) 还有 os = OutputStream(f) <-----留意这里,时间关系~我让outputstream 和f勾搭上了 //这是空罐子B
6. 开始 os.write(b) //水从A罐向B了
*7. 完成后可以很好习惯地 is.close(); os.close(); //把两个罐子的盖子盖上~省得被妈妈啰嗦
上面这种方法读小文件是不会有什么问题的,但如果是比较大的文件?尤其是手机上应用~网络很慢会怎样?如果要再贪心一点~想显示下载进度呢?
也就是说如果罐子里的水一杯装不完怎么办?出错了~
在 byte[]这里做做手脚 指定固定的大小,通过循环 read(b), write(b) 的方式就能把流数据切小段读取,但要设计好最后一杯不是满杯的,用write(btye[] b, int start,int count);这个方法能保证不会倒入多余的不明液体~嘿嘿嘿
另外,对http连接获取内容大小,循环的时候知道每杯的容量,每次循环...进度多少也就心里有底了~
分享到:
相关推荐
代码如下:// 读取sdcard文件private void sdcardRead(){String fileName = “/sdcard/my_sdcard.txt”;// assets下文件//String fileName = “/sdcard/test/my_sdcard_test.txt”;// sdcard下子目录文件String ret =...
android调试sdcard文件加载,解决不能传入文件问题: 只需要执行4个命令,win和mac下都好使。
最近在Android N 上 安装Apk时报错:android.os.FileUriExposedException: file:///storage/emulated/0/Download/appName-2.3.0.apk exposed beyond app through Intent.getData(),通过查找相关的资料终于找到了...
预置一些文件到系统sdcard目录
// suffix:需要选择的文件后缀,比如需要选择wav、mp3文件的时候设置为".wav;.mp3;",注意最后需要一个分号(;) // images:用来根据后缀显示的图标资源ID。 // 根目录图标的索引为sRoot; // 父目录的索引为...
Android应用源码SdCard读写文件实例
android 写入SDcard 文件,通俗易懂,适合初学者
支持http://或https://、asset://、content://、file:///sdcard/sample.jpg或/sdcard/sample.jpg、drawable://、data:image/或data:img/等6种URI 支持gif图. 集成了android-gif-drawable 1.2.6可以方便的显示gif...
"file:///mnt/sdcard/paint.png", 优化了listview等快速滑动时的图片加载 圆角图采用了性能最优的方案 可设置模糊效果和头像识别自动剪裁功能 通过各种手段保障gridview等在有圆角和大量gif的情况下快速滑动时也能...
Android应用源码SdCard读写文件实例.zip
java8上已试,可用。
无需权限将文件保存到sdcard或应用缓存文件中.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
Android文件类型读写
adb shell /data/local/tcpdump/tcpdump -p -vv -s 0 -w /sdcard/capture.pcap adb pull /sdcard/capture.pcap . TCPdump下载地址http://www.strazzere.com/android/tcpdump Wireshark下载地址 ...
NULL 博文链接:https://xiva.iteye.com/blog/852876
NULL 博文链接:https://z251257144.iteye.com/blog/1355245
真正实现android webview自身下载文件,并自动保存到SDCARD上,静默下载哦。
Android_SDCard操作(文件读写,容量计算).