• 【Java下载文件】


    一、下载文件

    public class Test{
        /**
         * 从网络Url中下载文件
         *
         * @param urlStr
         * @param fileName
         * @param savePath
         * @throws IOException
         */
         
         public static void main(String args[]){
             pdfAnalysis.downLoadByUrl("", "KK.pdf", "F:/");
         }
         
         
         
         
        public static void downLoadByUrl(String urlStr, String fileName, String savePath) throws IOException {
            URL url = new URL(urlStr);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            // 设置超时间为3秒
            conn.setConnectTimeout(5 * 1000);
            //设置从主机读取数据超时
            conn.setReadTimeout(30000);
            // 防止屏蔽程序抓取而返回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();
        }
    
      
    }
    
  • 相关阅读:
    2017.10.27
    2017.10.26
    codeforces 652 E Pursuit For Artifacts
    bzoj 1123 BLO
    bzoj 2839 集合计数
    bzoj 3170: [Tjoi 2013]松鼠聚会
    bzoj 2503 相框 欧拉回路
    bzoj 1786 [Ahoi2008]Pair 配对
    bzoj 1014 [JSOI2008]火星人prefix 哈希+splay
    csp-s74 瓶颈
  • 原文地址:https://www.cnblogs.com/iitxt/p/8985552.html
Copyright © 2020-2023  润新知