java视频下载

java视频下载下载文件到本地 paramurlStri 被下载的文件地址 paramfilenam 本地文件名 paramtimeout 超时时间毫秒 throwsExcept

 / * 下载文件到本地 * * @param urlString * 被下载的文件地址 * @param filename * 本地文件名 * @param timeout * 超时时间毫秒 * @throws Exception * 各种异常 */ public static boolean download(String urlString, String filename,int timeout){ boolean ret = false; File file = new File(filename); try { if(file.exists()){ ret = true; }else{ // 构造URL URL url = new URL(urlString); // 打开连接 HttpURLConnection con = (HttpURLConnection )url.openConnection(); con.setConnectTimeout(timeout); con.setReadTimeout(timeout); con.connect(); int contentLength = con.getContentLength(); // 输入流 InputStream is = con.getInputStream(); // 1K的数据缓冲 byte[] bs = new byte[1024]; // 读取到的数据长度 int len; // 输出的文件流 File file2=new File(file.getParent()); file2.mkdirs(); if(file.isDirectory()){ }else{ file.createNewFile();//创建文件 } OutputStream os = new FileOutputStream(file); // 开始读取 while ((len = is.read(bs)) != -1) { os.write(bs, 0, len); } // 完毕,关闭所有链接 os.close(); is.close(); if(contentLength != file.length()){ file.delete(); ret = false; }else{ ret = true; } } } catch (IOException e) { file.delete(); ret = false; LOGGER.error("[VideoUtil:download]:\n" + " VIDEO URL:" + urlString + " \n NEW FILENAME:" + filename + " DOWNLOAD FAILED!! "); }finally { return ret; } } / * 断点续传 * @param urlString * @param filename * @param timeout * @return */ public static boolean resumeDownload(String urlString, String filename,int timeout) throws Exception{ boolean ret = false; File fileFinal = new File(filename); String tmpFileName = filename+".tmp"; File file = new File(tmpFileName); try { if(fileFinal.exists()){ ret = true; }else{ long contentStart = 0; File file2=new File(file.getParent()); if(file.exists()){ contentStart = file.length(); }else{ file2.mkdirs(); } // 构造URL URL url = new URL(urlString); // 打开连接 HttpURLConnection con = (HttpURLConnection )url.openConnection(); con.setConnectTimeout(timeout); con.setReadTimeout(timeout); //设置续传的点 if(contentStart>0){ con.setRequestProperty("RANGE","bytes="+contentStart+"-"); } con.connect(); int contentLength = con.getContentLength(); // 输入流 InputStream is = con.getInputStream(); // 100Kb的数据缓冲 byte[] bs = new byte[100*1024]; // 读取到的数据长度 int len; RandomAccessFile oSavedFile = new RandomAccessFile(tmpFileName,"rw"); oSavedFile.seek(contentStart); // 开始读取 while ((len = is.read(bs)) != -1) { oSavedFile.write(bs, 0, len); } // 完毕,关闭所有链接 oSavedFile.close(); is.close(); file.renameTo(fileFinal); ret = true; } } catch (IOException e) { file.delete(); ret = false; LOGGER.error("[VideoUtil:download]:\n" + " VIDEO URL:" + urlString + " \n NEW FILENAME:" + filename + " DOWNLOAD FAILED!! "); throw new Exception(e); }finally { return ret; } }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/227049.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午10:03
下一篇 2026年3月16日 下午10:04


相关推荐

  • 卸载软件包命令_查看rpm包是否安装

    卸载软件包命令_查看rpm包是否安装可以先用rpm-q’xxx’或者rpm-qf’xxx/bin/xxxx.xx’来查询一下所属的rpm包的名字。然后用rpm-e’xxxxxx’来删之。’xxx/bin/xxxx.xx’是一个包中任意的文件’xxxxxx’是查询得到的rpm包的名称    rpm-e的时候后面的文件名不用加版本号 安全地卸载RPM卸载软件包,并不是简单地将原来安

    2026年2月16日
    5
  • Java中的Scanner(详解常见用法)

    Java中的Scanner(详解常见用法)OJ中遇到的问题和例子:doublenextDouble(),floatnextFloat(),intnextInt()等与nextLine()连用时都存在遗留的换行符影响nextLine()读取输入的问题,解决的办法是:在每一个next()、nextDouble()、nextFloat()、nextInt()等语句之后加一个nextLine()语句,将被next()去掉的…

    2022年7月8日
    26
  • beego——XSRF过滤

    beego——XSRF过滤跨站请求伪造,简称XSRF,是Web应用中常见的一个安全问题。当前防范XSRF的一种通用的方法,是对每一个用户都记录一个无法预知的token数据,然后要求所有提交的请求(POST/PUT/DELETE)中都必须带有这个token数据。如果此数据不匹配,那么这个请求就可能是被伪造的关于XSRF攻击的详细内容可以参考博客:https://www.cnblogs.com/yangmin…

    2022年5月19日
    39
  • php四种文件加载语句

    php四种文件加载语句

    2021年10月31日
    43
  • java date格式化类型_java日期格式化 结果要date类型[通俗易懂]

    满意答案yuj48gr562013.12.28采纳率:40%等级:12已帮助:11567人SimpleDateFormatformat=newSimpleDateFormat(“yyyy-MM-ddHH:mm:ss”);Dated=newDate();Stringdd=format.format(d);Dateddd;try{ddd=format.parse(d…

    2022年4月15日
    49
  • 最全面 在 Pycharm 中配置并使用 pipenv 虚拟环境

    最全面 在 Pycharm 中配置并使用 pipenv 虚拟环境1 为 Python 项目创建虚拟环境 1 1 安装 pipenvpipins 2 创建虚拟环境跳转到项目文件夹打开 cmd 窗口并输入以下代码 pipenvinstal 3 为虚拟环境安装指定包 pipenvinstal 如果使用默认安装源 大多数情况下会卡在 locking 阶段 解决办法有二更改安装源 修改项目文件夹下的 Pipfile 文

    2026年3月27日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号