使用HttpURLConnection下载文件

使用HttpURLConnection下载文件一.把android.permission.INTERNET添加到AndroidMainfest.xml配置文件中,使整个程序有访问网络的权限。[html] view plaincopy 二.创建一个下载连接并返回InputStream对象。InputStream对象就是下载的文件的字节流 [java] view plaincopy /** * 获取下载文件的InputStream对象 * @param urlStr 下载文件的地址 * @return 返回InputStream文件对象 * @throws MalformedURLException * @throws IOException */ public InputStreamGet_inputStream(String urlStr) throws MalformedURLException ,IOException { //创建按一个URL实例 url = new URL(urlStr); //创建一个HttpURLConnection的链接对象 HttpURLConnection httpConn =(HttpURLConnection)url.openConnection(); //获取所下载文件的InputStream对象 InputStream inputStream=httpConn.getInputStream(); //返回下载文件的InputStream对象 return inputStream; } 三. 如果下载文本文件可以直接对文件内的字符进行操作。 [java] view plaincopy /** * 下载文本文件,直接返回字符串 * @param urlStr 下载地址 * @return 返回文本文件的字符串 */ public String DownTxt(StringurlStr) { //创建StringBuffer 对象存放转换后的字符串 StringBuffer sBuffer = newStringBuffer(); //创建临时的String变量,临时存放文本文件的每一行字符串 String line = null; //BufferedReader有个可以一次读取一行内容的方法readLine()。 //所以创建ufferedReader对象存放下载的文本内容 BufferedReaderbufferedReader = null; try { //把Get_inputStream()方法返回的是字节流,转换成InputStreamReader类的字符流。 //由于字节与字符流不好操作所以转换成BufferedReader //然后使用它的eadLine()方法一次读取一行内容。 bufferedReader = newBufferedReader(new nputStreamReader(Get_inputStream(urlStr))); //循环读取每一行的内容赋值给StringBuffer 对象。 while ((line =bufferedReader.readLine()) != null ) { sBuffer.append(line); } } catch (Exception e) { // TODO: handleexception e.printStackTrace(); }finally{ try { bufferedReader.close(); } catch (Exception e){ // TODO:handle exception e.printStackTrace(); } } return sBuffer.toString(); } 四.把文件直接写入到手机内存卡中 [java] view plaincopy /** * 写入文件 * @param inputStream 下载文件的字节流对象 * @param sdpath 文件的存放目录 */ public void WriteFile( InputStreaminputStream , String sdpath) { try { //在指定目录创建一个空文件并获取文件对象 File file = createSDFile(sdpath); //获取一个写入文件流对象 OutputStream ouput =new FileOutputStream(file); //创建一个4*1024大小的字节数组,作为循环读取字节流的临时存储空 byte buffer[] = newbyte[4*1024]; //循环读取下载的文件到buffer对象数组中 while((inputStream.read(buffer)) != -1) { //把文件写入到文件 ouput.write(buffer); } } catch (Exception e) { // TODO: handleexception e.printStackTrace(); }finally{ try { //关闭写入流 ouput.close(); } catch (Exception e){ // TODO:handle exception e.printStackTrace(); } } } 五.写入文件到SD卡需要用到权限[html] view plaincopy
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值