zoukankan      html  css  js  c++  java
  • 从url中下载资源(目前测试只有照片,文件类的没有进行测试)

    首先:是工具类:

    public class DownLoadUtils {
    
        /**
         * 从网络Url中下载文件
         *
         * @param urlStr  url路径
         * @param fileName   文件的名称
         * @param savePath    保存的路径
         * @throws IOException
         */
        public static void downLoadFromUrl(String urlStr, String fileName, String savePath) throws IOException {
            URL url = new URL(urlStr);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            //设置超时间为3秒
            conn.setConnectTimeout(3 * 1000);
            //防止屏蔽程序抓取而返回403错误
            conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
    
            //得到输入流
            InputStream inputStream = conn.getInputStream();
            //获取自己数组
            byte[] getData = readInputStream(inputStream);
    
            //文件保存位置
            File saveDir = new File(savePath);
            if (!saveDir.exists()) {
                saveDir.mkdir();
            }
            File file = new File(saveDir + File.separator + fileName);
            FileOutputStream fos = new FileOutputStream(file);
            fos.write(getData);
            if (fos != null) {
                fos.close();
            }
            if (inputStream != null) {
                inputStream.close();
            }
            System.out.println("info:" + url + " download success");
        }
    
    
        /**
         * 从输入流中获取字节数组
         *
         * @param inputStream
         * @return
         * @throws IOException
         */
        public static byte[] readInputStream(InputStream inputStream) throws IOException {
            byte[] buffer = new byte[1024];
            int len = 0;
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            while ((len = inputStream.read(buffer)) != -1) {
                bos.write(buffer, 0, len);
            }
            bos.close();
            return bos.toByteArray();
        }
    
    }

    测试类为:

    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class DownLoadUrl {
    
    
        @Test
        public void downLoadUrlTest() {
            //这一部分代码时候将url存储在文本中.然后读取文本
    //        File file=new File("C:\Users\yejianan\Desktop\chuanda.txt");
    //        BufferedReader reader=null;
    //        String temp=null;
    //        int line=1;
    //        PrintWriter pw = null;
    //        try{
    //            reader=new BufferedReader(new FileReader(file));
    //            while((temp=reader.readLine())!=null){
    //                //获取特定的url的字符串
    //                //int index=temp.indexOf('h');
    //                //String res=temp.substring(index);//res表示url
    //                System.out.println("line"+line+":"+temp);
    //                try{
    //                    downLoadFromUrl(temp,line+".jpg","C:\Users\yejianan\Desktop\chuanda");
    //                }catch (Exception e) {
    //                    // TODO: handle exception
    //                    System.out.println(e.toString());
    //                }
    //                line++;
    //            }
    //        }
    //        catch(Exception e){
    //            e.printStackTrace();
    //        }
    //        finally{
    //            if(reader!=null){
    //                try{
    //                    reader.close();
    //                }
    //                catch(Exception e){
    //                    e.printStackTrace();
    //                }
    //            }
    //        }
    //    }
            String urlstr = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1569842044752&di=e4815e7d6d558d62a21acd4396d7eba6&imgtype=0&src=http%3A%2F%2Fphoto16.zastatic.com%2Fimages%2Fphoto%2F9085%2F36339245%2F1315565987101.jpg";
    
            try {
                downLoadFromUrl(urlstr, "3.jpg", "D:\data\img");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    以上这个照片可以直接从网络中下载

  • 相关阅读:
    Spring框架中的单例Beans是线程安全的么?
    四种类型的数据节点 Znode?
    什么是 Swagger?你用 Spring Boot 实现了它吗?
    服务注册和发现是什么意思?Spring Cloud 如何实现?
    如何使用 Spring Boot 实现异常处理?
    什么是 CSRF 攻击?
    什么是 WebSockets?
    springboot整合Hbase
    java8的Supplier
    @Scope注解的作用详解
  • 原文地址:https://www.cnblogs.com/qingmuchuanqi48/p/11613270.html
Copyright © 2011-2022 走看看