当前位置: 首页 > news >正文

Java根据http路径判断路径是否可以访问、获取文件大小

    /*** 路径是否可以访问* @param urlString* @return*/public static boolean isUrlAccessible(String urlString) {try {URL url = new URL(urlString);HttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.setRequestMethod("HEAD"); // 使用HEAD方法进行请求,以节省带宽connection.setConnectTimeout(3000); // 设置连接超时时间connection.setReadTimeout(3000); // 设置读取超时时间int responseCode = connection.getResponseCode();// 判断响应码是否表示成功(200-399 范围内)return (200 <= responseCode && responseCode <= 399);} catch (Exception e) {e.printStackTrace(); // 出现异常,说明URL不可访问return false;}}/*** 获取文件大小* @param fileUrl 文件路径* @return* @throws IOException*/public static long getFileSize(String fileUrl) {Long fileSize = 0L;try {URL url = new URL(fileUrl);HttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.setRequestMethod("HEAD");connection.connect();int responseCode = connection.getResponseCode();if (responseCode == HttpURLConnection.HTTP_OK) {String contentLength = connection.getHeaderField("Content-Length");if (contentLength != null) {fileSize = Long.parseLong(contentLength);}}}catch (Exception e){System.out.println("获取文件大小出错!错误原因:" + e.getMessage());fileSize = -1L; // 返回-1表示获取文件大小失败}return fileSize;}/*** 文件大小单位转换方法: B/KB/MB/GB* @param contentLength 文件大小* @return*/public static String fileUnitConversion(Long contentLength) {DecimalFormat df = new DecimalFormat("#.00");String fileSizeString;long fileSize = contentLength;if (fileSize < 1024) {fileSizeString = df.format((double) fileSize) + "B";} else if (fileSize < 1048576) {fileSizeString = df.format((double) fileSize / 1024) + "KB";} else if (fileSize < 1073741824) {fileSizeString = df.format((double) fileSize / 1048576) + "MB";} else {fileSizeString = df.format((double) fileSize / 1073741824) + "GB";}return fileSizeString;}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 笔记:Newtonsoft.Json 序列化接口集合
  • vscode语言模式
  • 电脑如何录屏?3个小技巧帮到你
  • VPN 的入门介绍
  • GPU 张量核心(Tensor Core)技术解读
  • pnpm介绍
  • 14-46 剑和诗人20 – 减少幻觉的提示词工程
  • Apache Seata分布式事务原理解析探秘
  • OceanBase v4.2 特性解析:对Json与Xml的扩展支持
  • windows机器免密登录linux主机
  • 小程序 使用 UI 组件 Vant Weapp 、vant组件样式覆盖
  • 前端web在线PPT编辑器-PPTLIST
  • uni-app使用ucharts地图,自定义Tooltip鼠标悬浮显示内容并且根据@getIndex点击事件获取点击的地区下标和地区名
  • 【分布式系统三】监控平台Zabbix对接grafana(截图详细版)
  • AI集成工具平台一站式体验,零门槛使用国内外主流大模型
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • flask接收请求并推入栈
  • Git初体验
  • HTML-表单
  • input的行数自动增减
  • Java比较器对数组,集合排序
  • MD5加密原理解析及OC版原理实现
  • mongo索引构建
  • nfs客户端进程变D,延伸linux的lock
  • supervisor 永不挂掉的进程 安装以及使用
  • 编写高质量JavaScript代码之并发
  • 创建一种深思熟虑的文化
  • 开发基于以太坊智能合约的DApp
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​经​纬​恒​润​二​面​​三​七​互​娱​一​面​​元​象​二​面​
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (160)时序收敛--->(10)时序收敛十
  • (175)FPGA门控时钟技术
  • (19)夹钳(用于送货)
  • (4)Elastix图像配准:3D图像
  • (java)关于Thread的挂起和恢复
  • (pycharm)安装python库函数Matplotlib步骤
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (分布式缓存)Redis分片集群
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (十三)Maven插件解析运行机制
  • (一)UDP基本编程步骤
  • (转)Oracle存储过程编写经验和优化措施
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .htaccess配置重写url引擎
  • .Net 6.0 处理跨域的方式
  • .NET DataGridView数据绑定说明
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .net反编译的九款神器
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .NET开源、简单、实用的数据库文档生成工具