http获取网络资源文件等并保存到本地sd或者磁盘

来源:互联网 发布:数据人生完本 编辑:程序博客网 时间:2024/05/11 17:23


第一种方法:[java] view plaincopypackage com.hg.threadPoolExecutorDemo;  import java.io.ByteArrayOutputStream;    import java.io.File;    import java.io.FileOutputStream;    import java.io.InputStream;    import java.net.HttpURLConnection;    import java.net.URL;    /**   * @说明 从网络获取图片到本地   * @version 1.0   * @since   */    public class GetImage {        /**       * 测试       * @param args       */        public static void main(String[] args) {            String url = "http://www.baidu.com/img/baidu_sylogo1.gif";            byte[] btImg = getImageFromNetByUrl(url);            if(null != btImg && btImg.length > 0){                System.out.println("读取到:" + btImg.length + " 字节");                String fileName = "百度.gif";                writeImageToDisk(btImg, fileName);            }else{                System.out.println("没有从该连接获得内容");            }        }        /**       * 将图片写入到磁盘       * @param img 图片数据流       * @param fileName 文件保存时的名称       */        public static void writeImageToDisk(byte[] img, String fileName){            try {                File file = new File("D:\\" + fileName);                FileOutputStream fops = new FileOutputStream(file);                fops.write(img);                fops.flush();                fops.close();                System.out.println("图片已经写入到D盘");            } catch (Exception e) {                e.printStackTrace();            }        }        /**       * 根据地址获得数据的字节流       * @param strUrl 网络连接地址       * @return       */        public static byte[] getImageFromNetByUrl(String strUrl){            try {                URL url = new URL(strUrl);                HttpURLConnection conn = (HttpURLConnection)url.openConnection();                conn.setRequestMethod("GET");                conn.setConnectTimeout(5 * 1000);                InputStream inStream = conn.getInputStream();//通过输入流获取图片数据                byte[] btImg = readInputStream(inStream);//得到图片的二进制数据                return btImg;            } catch (Exception e) {                e.printStackTrace();            }            return null;        }        /**       * 从输入流中获取数据       * @param inStream 输入流       * @return       * @throws Exception       */        public static byte[] readInputStream(InputStream inStream) throws Exception{            ByteArrayOutputStream outStream = new ByteArrayOutputStream();            byte[] buffer = new byte[1024];            int len = 0;            while( (len=inStream.read(buffer)) != -1 ){                outStream.write(buffer, 0, len);            }            inStream.close();            return outStream.toByteArray();        }    }    第二种方法:[java] view plaincopypackage com.hg.threadPoolExecutorDemo;    import java.io.File;  import java.io.FileOutputStream;  import java.io.InputStream;  import java.io.OutputStream;  import java.net.URL;  import java.net.URLConnection;    public class DownloadImage {        /**       * @param args       * @throws Exception        */      public static void main(String[] args) throws Exception {          // TODO Auto-generated method stub    //      download("http://ui.51bi.com/opt/siteimg/images/fanbei0923/Mid_07.jpg",  //              "51bi.jpg", "D:\\image\\");          download("http://www.hao123.com/",                  "nidi.html", "D:\\image\\");      }        public static void download(String urlString, String filename,              String savePath) throws Exception {          // 构造URL            URL url = new URL(urlString);          // 打开连接            URLConnection con = url.openConnection();          //设置请求超时为5s            con.setConnectTimeout(5 * 1000);          // 输入流            InputStream is = con.getInputStream();            // 1K的数据缓冲            byte[] bs = new byte[1024];          // 读取到的数据长度            int len;          // 输出的文件流            File sf = new File(savePath);          if (!sf.exists()) {              sf.mkdirs();          }          OutputStream os = new FileOutputStream(sf.getPath() + "\\" + filename);          // 开始读取            while ((len = is.read(bs)) != -1) {              os.write(bs, 0, len);          }          // 完毕,关闭所有链接            os.close();          is.close();      }    }  




0 0
原创粉丝点击