Android中的文件下载
16lz
2021-01-26
文件下载:1、文本文件下载 2、其他类型文件下载
文本下载步骤:
1.首先就是取得与服务器的连接,通过要下载的文本文件URL,创建一个URL对象
1.首先判断文件是否存在,若不存在则继续
2.从文件的URL中获取InputStream
3.利用OutputStream写入文件,写入结束清除缓存OutputStream.flush();
文本下载步骤:
1.首先就是取得与服务器的连接,通过要下载的文本文件URL,创建一个URL对象
2.通过URL对象,创建一个HttpURLConnection对象
3.得到InputStream
4.从InputStream当中读取数据
private URL url = null;public String download(String urlStr){ StringBuffer sb = new StringBuffer(); String line = null; BufferedReader buffer = null; try{ url = new URL(urlStr); HttpURLConncetion urlConn = (HttpURLConnection)url.openConnection(); buffer = newBufferedReader(new InputStreamReader(urlConn.getInputStream())); while((line = buffer.readline()) != null){sb.append(line); } }catch(Exception e){e.printStackTrace(); }finally{try {buffer.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return sb.toString();}
其他类型文件的下载步骤: 1.首先判断文件是否存在,若不存在则继续
2.从文件的URL中获取InputStream
3.利用OutputStream写入文件,写入结束清除缓存OutputStream.flush();
public File write2SDFromInput(String path,String fileName,InputStream input){File file = null;OutputStream output = null;//用InputStream接收,OutputStream写入文件try {creatSDDir(path);file = creatSDFile( path + fileName);output = new FileOutputStream(file); //创建一个向指定 File 对象表示的文件中写入数据的文件输出流。创建一个新 FileDescriptor 对象来表示此文件连接。 byte buffer [] = new byte[4 * 1024];//以4K为单位,每4K写一次while((input.read(buffer)) != -1){//如果因为已经到达流末尾而没有可用的字节,则返回值 -1output.write(buffer);}output.flush();//清空一下缓存} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {output.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return file;}
更多相关文章
- Android导入工程出现 Project has no default.properties file!
- 分析通话记录信息是通过什么写入的 android 源码 保存通话记录
- LeakCanary
- Android(安卓)Studio之Gradle基础
- Android(安卓)studio 生成 lib.so
- 向sdcard中添加文件出错
- android小记之FTP文件上传
- Android类参考---Fragment(五)
- Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原