初识android——下载文件

来源:互联网 发布:淘宝店铺装修页尾 编辑:程序博客网 时间:2024/05/21 00:18

  自学过程中,看到老师在app中可以下载文件,就敲了两个download的用到的两个class,日后在用的时候可以直接拿过来用。放在这里保存起来,省得以后忘了。

public class FileUtils {    private String SDPATH;    public String getSDPATH() {        return SDPATH;    }    public FileUtils() {        //得到当前外部存储设备的目录        SDPATH = Environment.getExternalStorageDirectory() + "/";    }    //在SD卡上创建文件    public File creatSDFile(String fileName) throws IOException {        File file = new File(SDPATH + fileName);        file.createNewFile();        return file;    }    //在SD卡上创建目录    public File creatSDDir(String dirName) {        File dir = new File(SDPATH + dirName);        dir.mkdir();        return dir;    }    //判断SD卡上的文件是否已经存在    public boolean isFileExist(String fileName) {        File file = new File(SDPATH + fileName);        return file.exists();    }    //将一个InputStream里面的数据写到SD卡上    public File writeSDFromImput(String path, String fileName, InputStream input) {        File file = null;        OutputStream output = null;        try {            creatSDDir(path);            File f = creatSDFile(path + fileName);            output = new FileOutputStream(f);            byte buffer[] = new byte[4 * 1024];            while ((input.read(buffer)) != -1) {                output.write(buffer);            }            file = new File(path);        } catch (Exception e) {            e.printStackTrace();        } finally {            try {                output.close();            }catch (Exception e){                e.printStackTrace();            }        }        return file;    }}
public class HttpDownloader {    private URL url=null;    //根据URL下载文件,前提是这个文件当中的内容是文本,函数的返回值就是文件当中的内容    public  String download(String urlStr){        StringBuffer sb = new StringBuffer();        String line=null;        BufferedReader buffer=null;        try {            //创建一个URL对象            url=new URL(urlStr);            //创建一个http链接            HttpURLConnection urlConn=(HttpURLConnection)url.openConnection();            //使用IO流读取数据            buffer=new BufferedReader(new InputStreamReader(urlConn.getInputStream()));            while((line=buffer.readLine())!=null){                sb.append(line);            }            }catch(Exception e){                e.printStackTrace();        }finally {            try {                buffer.close();            }catch (Exception e){                e.printStackTrace();            }        }        return sb.toString();    }   //该函数返回整形 -1代表下载文件出错,0代表下载文件成功,1代表文件已经存在    public int download(String urlStr,String path,String fileName){        InputStream inputStream=null;        try {            FileUtils fileUtils=new FileUtils();            if(fileUtils.isFileExist(path+fileName)){                return 1;            }else{                inputStream=getInputStreamFromUrl(urlStr);                File resultFile=fileUtils.writeSDFromImput(path,fileName,inputStream);                if(resultFile==null){                    return -1;                }            }        }catch (Exception e){            e.printStackTrace();            return -1;        }finally {            try{                inputStream.close();            }catch (Exception e){                e.printStackTrace();            }        }    return 0;    }    //根据URL得到输入流    public InputStream getInputStreamFromUrl(String urlStr)            throws MalformedURLException,IOException{        url=new URL(urlStr);        HttpURLConnection urlConn=(HttpURLConnection)url.openConnection();        InputStream inputStream=urlConn.getInputStream();        return  inputStream;    }}



 

0 0
原创粉丝点击