Android下载文件到SD卡
2014-11-04 16:42
429 查看
HttpURLConnection 上传方式:
尝试理解这两种流的区别:InputStreamReader 的读取方式:
//创建一个URL对象 URL url = new URL(urlString); //创建一个HttpURLConnection HttpURLConnetion urlConn = (HttpURLConnection)url.openConnecton(); //读取数据 BufferReader buffer = new BufferReader(new InputStreamReader(urlConn.getInputStream())); StringBuffer sb = null; String line = null; while((line = buffer.readline()) != null){ sb.append(line); }
InputStream 的读取方式:
//创建一个URL对象 URL url = new URL(urlString); //创建一个HttpURLConnection HttpURLConnection urlConn =(HttpURLConnection)url.openConnection(); //获取一个InputStream InputStream inputStream = urlConn.getInputStream(); //获取SD卡的路径 String SDPath = Environment.getExternalStorageDirectory() + "/"; //创建要使用的文件夹 File dir = new File(SDPath + dirName); dir.mkdirs(); //创建输出文件 File file = new File(SDPath + dirName + fileName); file.createNewFile(); //创建一个文件输出流 OutputStream output = new FileOutputStream(file); //建立缓冲 byte[] buffer = new byte[1*1024]; //Stream读取索引 int downloadNum = 0; //将输入流写到文件当中 while((downloadNum = inputStream.read(buffer)) != -1){ output.write(buffer, 0, downloadNum); } output.flush();
在文件下载到sd卡上时,output.write(buffer);这句代码是绝对有问题的,会导致文件已损坏。所以要处理下。
因为假设你每次读40kb的数据 对于一个76kb的文件来说 最后一次读取buffer里面只有76-40=36kb而已
然而你依然网文件里面写入40kb的数据 导致文件末尾有4kb的空白数据 实际上有时候会影响文件的读取的 不过至少文件还是一个包含完整数据的文件
相关文章推荐
- Android开发九:从网上下载文件并存储到SD卡中
- [Android实例] 文件的下载以及将下载的文件存放到SD卡中
- Android 随手记----从服务器下载文件保存到sd卡
- Android:文件下载和写入SD卡学习小结
- Android:文件下载和写入SD卡学习小结
- android学习-下载文件到SD卡
- Android开发之下载Tomcat服务器的文件到模拟器的SD卡
- Android 下载文件至SD卡,并用progressBar显示下载进度
- android 文件下载与SD卡之间的关系
- Android:文件下载和写入SD卡学习小结
- Android 下载文件及写入SD卡
- 关于Android在网络上下载文件以及向SD卡中写入文件
- Mars-Android学习——网络文件下载和写入SD卡
- Android:文件下载和写入SD卡学习小结
- Android学习之HTTP协议文件下载并写入SD卡
- Android下载文件显示到ImageView并保存在手机SD卡
- Android 下载文件及写入SD卡
- android下载文件,写入SD卡等
- Android:文件下载和写入SD卡学习小结
- Android从远程服务器下载文件到本地sd卡中