zoukankan      html  css  js  c++  java
  • JKXY的视频内容下载工具类

    package cn.jsonlu.make.license;
    
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONObject;
    import org.junit.Test;
    
    import java.io.*;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * Author:JsonLu
     * DateTime:16/7/28 09:23
     * Email:jsonlu@qq.com
     * Desc:
     */
    public class FileUpload {
    
        private List<File> list = new ArrayList();
        private List<String> urls = new ArrayList<String>();
        private final String path = "D:\res\cordova";
    
        @Test
        public void test() throws Exception {
            File root = new File(path);
            getAllFiles(root);
            for (File file : list) {
                readTxtFile(file);
            }
            for (String url : urls) {
                int len = url.split("/").length;
                String name = url.split("/")[len - 1];
                DownloadMP4 downloadMP4 = new DownloadMP4();
                downloadMP4.downLoadFromUrl(url, name, path);
            }
    
        }
    
        /**
         * 读取目录下的文件内容
         *
         * @param file
         */
        private void readTxtFile(File file) {
            try {
                String encoding = "UTF-8";
                if (file.isFile() && file.exists()) { //判断文件是否存在
                    InputStreamReader read = new InputStreamReader(new FileInputStream(file), encoding);//考虑到编码格式
                    BufferedReader bufferedReader = new BufferedReader(read);
                    String lineTxt = null;
                    while ((lineTxt = bufferedReader.readLine()) != null) {
                        JSONObject object = JSON.parseObject(lineTxt);
                        JSONObject u = object.getJSONObject("data");
                        String url = u.getString("url");
                        urls.add(url);
                    }
                    read.close();
                } else {
                    System.out.println("找不到指定的文件");
                }
            } catch (Exception e) {
                System.out.println("读取文件内容出错");
                e.printStackTrace();
            }
    
        }
    
        /**
         * 遍历目录下的文件
         *
         * @param dir
         * @throws Exception
         */
        private void getAllFiles(File dir) throws Exception {
            File[] fs = dir.listFiles();
            for (int i = 0; i < fs.length; i++) {
                list.add(fs[i].getAbsoluteFile());
                if (fs[i].isDirectory()) {
                    try {
                        getAllFiles(fs[i]);
                    } catch (Exception e) {
                    }
                }
            }
        }
    
        class DownloadMP4 {
    
            /**
             * 从网络Url中下载文件
             *
             * @param urlStr
             * @param fileName
             * @param savePath
             * @throws IOException
             */
            public 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/5.0 (Linux; Android 6.0; HUAWEI NXT-DL00 Build/HUAWEINXT-DL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile MQQBrowser/6.2 TBS/036523 Safari/537.36 V1_AND_SQ_6.3.7_374_YYB_D QQ/6.3.7.2795 NetType/WIFI WebP/0.3.0 Pixel/1080");
                //得到输入流
                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("download success:" + url);
            }
    
    
            /**
             * 从输入流中获取字节数组
             *
             * @param inputStream
             * @return
             * @throws IOException
             */
            private 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();
            }
        }
    
    }
    

      

  • 相关阅读:
    windows 11下载地址
    ubuntu 安装无线网卡驱动
    修复因为安装openssl 1.0.0而导致使用ssh和scp产生警告信息
    vim下Java自动补全插件javacomplete
    mysql 配置多实例(mysqld_multi)
    nagios 整合 ganglia 设置邮件、短信报警
    Linux (ubuntu 10.10) 安装两个MySQL
    HDU 3269 P2P File Sharing System
    ubuntu 10.10 安装 sun java
    闲逛计算机系统(一):从HelloWorld说起
  • 原文地址:https://www.cnblogs.com/Jsonlu/p/5718897.html
Copyright © 2011-2022 走看看