Android 文件下载保存读取
2017-09-15 11:34
369 查看
对于Android的文件的下载,保存到本地,读取本地文件。
1.环境准备,需要被下载的文件url,或者自己搭建环境,有tomcat就行。运行tomcat,将需要被下载的文件放到上面。
这里我是放在我自己的服务器上的一个TXT文档做为例子。
2.下载文件,下载下来是一个字符串,注意需要进行转码,否则会产生乱码。采用的是Android 原生的httpURLconnection 进行读取。返回文件的内容。注意网络权限。
3 .如果需要将内容保存的话就采用入选方法,注意文件读写权限。
将2中获取到的文件内容做为参数传递过来,就可使实现保存了,不过需要注意的是
保存的路径没有选取默认内存路径,而是将其存到APP的下面,因为有些机子不支持在默认路径下存。
4.从本地将存入的文件读取出来。
好了 以上三个方法基本能满足普通的文件操作了,欢迎交流和指教。需要注意的是一点要关闭和清空管道。
1.环境准备,需要被下载的文件url,或者自己搭建环境,有tomcat就行。运行tomcat,将需要被下载的文件放到上面。
这里我是放在我自己的服务器上的一个TXT文档做为例子。
2.下载文件,下载下来是一个字符串,注意需要进行转码,否则会产生乱码。采用的是Android 原生的httpURLconnection 进行读取。返回文件的内容。注意网络权限。
/** *@author chenzhu *creat at 2017/9/15 10:42 *@param baseUrl 文件的网络地址 *@return 文件字符串 * @include saveFile() 保存文件 * **/ public String getFileByUrl(String baseUrl) { try { URL url = new URL(baseUrl); HttpURLConnection urlConn = (HttpURLConnection) url.openConnection(); urlConn.setDoInput(true); //设置输入流采用字节流 urlConn.setDoOutput(true); //设置输出流采用字节流 urlConn.setRequestMethod("POST"); urlConn.setUseCaches(false); //设置缓存 urlConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); urlConn.setRequestProperty("Charset", "utf-8"); urlConn.connect(); DataOutputStream dos = new DataOutputStream(urlConn.getOutputStream()); dos.writeBytes("tqpadmac=" + URLEncoder.encode("B407F9D67C80", "utf-8")); dos.writeBytes("tqpadver=" + URLEncoder.encode("1", "utf-8")); dos.flush(); dos.close(); //这句:new InputStreamReader(urlConn.getInputStream(), "gbk") 设置编码 BufferedReader br = new BufferedReader(new InputStreamReader(urlConn.getInputStream(), "gbk")); String line = ""; String result = ""; while (null != (line = br.readLine())) { result += line; } Log.d("chenzhu","chenzhu--->get data byurl接到的数据: " + result); br.close(); urlConn.disconnect(); return result; } catch (Exception e1) { e1.printStackTrace(); } return ""; }
3 .如果需要将内容保存的话就采用入选方法,注意文件读写权限。
将2中获取到的文件内容做为参数传递过来,就可使实现保存了,不过需要注意的是
保存的路径没有选取默认内存路径,而是将其存到APP的下面,因为有些机子不支持在默认路径下存。
/** *@author chenzhu *creat at 2017/9/15 10:44 *@param file 需要保存的文件内容 *@return * **/ private void saveFile(String file ) { try{ ByteArrayInputStream inputStream = new ByteArrayInputStream(file.getBytes()); FileOutputStream outputStream = new FileOutputStream("/data/data/"+getPackageName()+"/files/FaultCodeList.txt"); Log.d("chenzhu","chenzhu--->save data"+Environment.getExternalStorageDirectory()); int len = -1; while((len = inputStream.read())!=-1){ outputStream.write(len); } outputStream.flush(); outputStream.close(); }catch (Exception e){ e.printStackTrace(); Log.d("chenzhu","chenzhu--->save data"+e); } }
4.从本地将存入的文件读取出来。
private String readFile(String filename) { String reads = ""; try { File file = new File(filename); FileInputStream fis = new FileInputStream(file); byte[] b = new byte[1024]; ByteArrayOutputStream baos = new ByteArrayOutputStream(); while (fis.read(b) != -1) { baos.write(b, 0, b.length); } fis.close(); baos.flush(); baos.close(); reads = baos.toString(); Log.d("chenzhu","chenzhu--->read file"+reads); } catch (FileNotFoundException e) { // TODO Auto-generated catch block Log.d("chenzhu","chenzhu--->read file FileNotFoundException"+e); e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); Log.d("chenzhu","chenzhu--->read file IOException"+e); } return reads; }
好了 以上三个方法基本能满足普通的文件操作了,欢迎交流和指教。需要注意的是一点要关闭和清空管道。
相关文章推荐
- android的sdcard文件的读取和保存详细介绍
- Android下载文件保存到路径
- Android心得4.1--文件的保存与读取及文件的操作模式详解.doc
- Android下载文件显示到ImageView并保存在手机SD卡
- 文件读取Android---02---文件的保存与读取文件读取
- android下pull解析器读取和保存xml文件
- android 保存和读取文件
- Android 读取和保存文件(手机内置存储器)
- Android 从服务器下载文件保存到sd卡
- 保存、方法-Android文件存储--采用SharedPreferences保存用户偏好设置参数和读取设置参数-by小雨
- Android 随手记----从服务器下载文件保存到sd卡
- android往文件中保存和读取数据
- Android读取url图片保存及文件读取
- Android 文件保存与读取
- Android文件保存和读取
- Android 模拟登陆 保存密码(信息)到手机中 文件信息读取
- Android--入门---15---(文件保存 & 读取 & 权限)
- Android开发入门之文件的保存与读取
- 【Android】【转】文件保存与读取
- Android----文件的保存与读取