• android下载简单工具类


    功能是实现下载文件,图片或MP3等,为了简单起见使用单线程,此代码为MarsAndroid教程的复制品,放在此处,留着参考。

    首先是一个得到字节流随后保存到内存卡上的工具类:

    package com.example.utils;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    
    import android.os.Environment;
    
    public class FileUtils {
        private String SDpath;
        public String getSDpath(){
            return SDpath;
        }
        public FileUtils(){
            //得到当前外部存储设备的目录,即/SDCARD,后边加"/"为了之后方便
            SDpath=Environment.getExternalStorageDirectory()+"/";
        }
        /**
         * 在SD卡上创建文件
         * @param fileName
         * @return File
         * @throws IOException
         */
        public File creatSDFile(String fileName) throws IOException{
            File file=new File(SDpath+fileName);
            file.createNewFile();
            return file;
        }
        /**
         * 在SDCARD创建目录
         * @param dirName
         * @return
         */
        public File creatSDDir(String dirName){
            File dir=new File(SDpath+dirName);
            dir.mkdir();
            return dir;
        }
        public boolean isFileExist(String fileName){
            File file=new File(fileName);
            return file.exists();
        }
        /**
         * 将一个InputStream里的数据写入SD卡
         */
        public File write2SDFromInput(String path,String fileName,InputStream is){
            File file=null;
            OutputStream os=null;
            try{
                creatSDDir(path);
                file=creatSDFile(path+fileName);
                os=new FileOutputStream(file);
                byte buffer[]=new byte[4*1024];//4kb
                while((is.read(buffer))!=-1){
                    os.write(buffer);
                }
                os.flush();
                System.out.println("write to "+path+"sucess!");
            }catch(Exception e){
                e.printStackTrace();
            }finally{
                try{
                    os.close();
                }catch(Exception e){
                    e.printStackTrace();
                }            
            }
            return file;
        }
        
        
        
    
    }

    随后是文件下载类:

    package com.example.utils;
    
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    
    public class HttpDownloader {
        private URL url=null;
        //此方法返回文本,但并未保存到SD卡
        public String downloadText(String urlstr){
            StringBuffer sb=new StringBuffer();
            String line=null;
            BufferedReader br=null;
            try{
                url=new URL(urlstr);
                HttpURLConnection con= (HttpURLConnection)url.openConnection();
                br=new BufferedReader(new InputStreamReader(con.getInputStream()));
                while((line=br.readLine())!=null){
                    sb.append(line);
                }
            }catch(Exception e){
                e.printStackTrace();
            }finally{
                try {
                    br.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            return sb.toString();
        }
        /**
         * 
         * @param urlstr
         * @param path
         * @param fileName
         * @return -1-error,0-success,1-file exist
         */
        public int downloadMP3(String urlstr,String path,String fileName){
            InputStream is=null;
            try{
                FileUtils fileUtils=new FileUtils();
                if(fileUtils.isFileExist(path+fileName)){
                    return 1;
                }else{
                    is=getInputStreamFromUrl(urlstr);
                    File resultfile=fileUtils.write2SDFromInput(path, fileName, is);
                    if(resultfile==null){
                        return -1;
                    }
                }
            }catch(Exception e){
                e.printStackTrace();
                return -1;
            }finally{
                try {
                    is.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            return 0;
        }
        private InputStream getInputStreamFromUrl(String urlstr) 
                throws MalformedURLException,IOException{
            URL url=new URL(urlstr);
            HttpURLConnection con=(HttpURLConnection)url.openConnection();
            InputStream is=con.getInputStream();
            return is;
        }
    
    }
  • 相关阅读:
    application.properties /application.yml官网查看配置;springboot application.properties 官网查看,info yml 查看;springboot.yml查看info;springboot.yml查看Actuator监控中心info
    Clion 教程书写Hello World,C语言开发;Clion 的C语言开发
    Host is not allowed to connect to this MySQL server---------------->windows10
    @RequestBody jackson解析复杂的传入值的一个坑;jackson解析迭代数组;jackson多重数组;jakson数组
    windows10 搭建Dubbo
    无DNS解析环境下部署Vcenter6.7
    常用联想网络连接
    Linux 不重启扫描存储磁盘
    WWN,WWNN,WWPN三者的区别
    HDFS、Ceph、GFS、GPFS、Swift 等分布式存储技术的特点和适用场景
  • 原文地址:https://www.cnblogs.com/makefile/p/3561726.html
Copyright © 2020-2023  润新知