获取资源的大小

2023-11-22

我在用着getClass().getResourceAsStream(path)从捆绑资源中读取。

在读取整个流之前如何知道文件大小?

我无法访问它们getClass().getResource(path).toURI()当它被打包时,这样就不起作用了。


我尝试回答这个帖子询问从java中的类路径读取的文件的长度但他们将其标记为与您的问题重复,所以我在这里给出我的答案!

可以使用以下方法获取简单文件的大小:

File file = new File("C:/Users/roberto/Desktop/bar/file.txt");
long length = file.length();
System.out.println("Length: " + length);

When file.txt被包装在一个罐子里.length()将始终返回 0。
所以我们需要使用JarFile:

JarFile jarFile = new JarFile("C:/Users/roberto/Desktop/bar/foo.jar");
Object size = jarFile.getEntry("file.txt").getSize();
System.out.println("Size: " + size.toString())

您也可以获得压缩后的大小:

JarFile jarFile = new JarFile("C:/Users/roberto/Desktop/bar/foo.jar");
Object compressedSize = jarFile.getEntry("file.txt").getCompressedSize();
System.out.println("CompressedSize: " + compressedSize);

仍然可以使用以下命令获取打包在 jar 中的文件的大小jar命令:

jar tvf Desktop\bar\foo.jar file.txt

输出将是:5 Thu Jun 27 17:36:10 CEST 2019 file.txt
where 5是尺寸。

您可以在代码中使用它:

Process p = Runtime.getRuntime().exec("jar tvf C:/Users/roberto/Desktop/bar/foo.jar file.txt");
StringWriter writer = new StringWriter();
IOUtils.copy(p.getInputStream(), writer, Charset.defaultCharset());
String jarOutput = writer.toString();  

但运行需要jdkjar命令。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取资源的大小 的相关文章

  • 对话框上的 EditText 不返回任何文本

    我太累了 找不到错误 我没有发现任何错误 但我没有从 editText 收到任何文本 请看下面的代码 活动密码 xml
  • Spring安全“记住我”cookie在第一个请求中不可用

    我无法在登录请求后检索 Spring 记住我 cookie 但它在对受保护页面的下一个请求中工作正常 谁能告诉我怎样才能立即得到它 我在登录请求中设置了记住我的 cookie 但在 Spring 重定向回原始 受保护的 url 后无法检索它
  • 使用 RecyclerView 适配器在运行时更改布局屏幕

    我有两个布局文件 如下所示 如果列表中存在数据 则我显示此布局 当列表为空时 我会显示此布局 现在我想在运行时更改布局 当用户从列表中删除最后一项时 我想将布局更改为第二张图片中显示的 空购物车布局 In getItemCount Recy
  • Condition 接口中的 signalAll 与对象中的 notificationAll

    1 昨天我才问过这个问题条件与等待通知机制 https stackoverflow com questions 10395571 condition vs wait notify mechanism 2 我想编辑相同的内容并在我的问题中添加
  • Firestore - RecycleView - 图像持有者

    我不知道如何编写图像的支架 我已经设置了 2 个文本 但我不知道图像的支架应该是什么样子 你能帮我告诉我图像的文字应该是什么样子才能正确显示吗 holder artistImage setImageResource model getArt
  • Java 数组的最大维数

    出于好奇 在 Java 中数组可以有多少维 爪哇language不限制维数 但是JavaVM规范将维度数限制为 255 例如 以下代码将无法编译 class Main public static void main String args
  • Java 收集返回顶级项目的映射的嵌套流

    我有以下模型 class Item String name List
  • Java - 返回值是否会中断循环?

    我正在编写一些基本上遵循以下格式的代码 public static boolean isIncluded E element Node
  • Slick:将操作与 DBIOAction 的 Seq 组合起来

    我有 工作 以下代码 val actions for lt slickUsers insertOrUpdate dbUser loginInfo lt loginInfoAction lt slickUserLoginInfos DBUse
  • 如何配置 WebService 返回 ArrayList 而不是 Array?

    我有一个在 jax ws 上实现的 java Web 服务 此 Web 服务返回用户的通用列表 它运行得很好 Stateless name AdminToolSessionEJB RemoteBinding jndiBinding Admi
  • 逃离的正确方法是什么?使用 Oracle 12c MATCH_RECOGNIZE 时 JDBCPreparedStatement 中的字符?

    以下查询在 Oracle 12c 中是正确的 SELECT FROM dual MATCH RECOGNIZE MEASURES a dummy AS dummy PATTERN a DEFINE a AS 1 1 但它不能通过 JDBC
  • 为什么java中的for-each循环中需要声明变量

    for 每个循环的通常形式是这样的 for Foo bar bars bar doThings 但如果我想保留 bar 直到循环结束 我可以not使用 foreach 循环 Foo bar null Syntax error on toke
  • 对象锁定私有类成员 - 最佳实践? (爪哇)

    I asked 类似的问题 https stackoverflow com questions 10548066 multiple object locks in java前几天 但对回复不满意 主要是因为我提供的代码存在一些人们关注的问题
  • 将图像添加到自定义 AlertDialog

    我制作了一个 AlertDialog 让用户可以从我显示的 4 个选项中选择一个 前 3 个让他们在单击号码时直接拨打号码 第 4 个显示不同的视图 现在看起来是这样的 由于第四个选项的目的是不同的任务 我想让它看起来不同 因为用户可能会感
  • 解决错误javax.mail.AuthenticationFailedException

    我不熟悉java中发送邮件的这个功能 我在发送电子邮件重置密码时遇到错误 希望你能给我一个解决方案 下面是我的代码 public synchronized static boolean sendMailAdvance String emai
  • 如何在Java中正确删除数组[重复]

    这个问题在这里已经有答案了 我刚接触 Java 4 天 从我搜索过的教程来看 讲师们花费了大量精力来解释如何分配二维数组 例如 如下所示 Foo fooArray new Foo 2 3 但我还没有找到任何解释如何删除它们的信息 从内存的情
  • 哪个集合更适合存储多维数组中的数据?

    我有一个multi dimensional array of string 我愿意将其转换为某种集合类型 以便我可以根据自己的意愿添加 删除和插入元素 在数组中 我无法删除特定位置的元素 我需要这样的集合 我可以在其中删除特定位置的数据 也
  • Android - 9 补丁

    我正在尝试使用 9 块图片创建一个新的微调器背景 我尝试了很多方法来获得完美的图像 但都失败了 s Here is my 9 patch 当我用Draw 9 patch模拟时 内容看起来不错 但是带有箭头的部分没有显示 或者当它显示时 这部
  • Hibernate 和可序列化实体

    有谁知道是否有一个框架能够从实体类中剥离 Hibernate 集合以使它们可序列化 我查看了 BeanLib 但它似乎只进行实体的深层复制 而不允许我为实体类中的集合类型指定实现映射 BeanLib 目前不适用于 Hibernate 3 5
  • 在android中跟踪FTP上传数据?

    我有一个运行 Android 的 FTP 系统 但我希望能够在上传时跟踪字节 这样我就可以在上传过程中更新进度条 安卓可以实现这个功能吗 现在 我正在使用org apache common net ftp我正在使用的代码如下 另外 我在 A

随机推荐

  • 在 Python 版本 3.10 上使用 pip3 在 M1 Mac 上安装 numpy 时出现“不兼容的架构(具有 'arm64',需要 'x86_64')”错误

    我试图使用 pip3 在 M1 Macbook 上安装 numpy 版本 1 22 3 pip3 表示该包存在 但是当我尝试导入该模块时 会向我抛出一个错误 提示我 Importing the numpy C extensions fail
  • 如何中途开始测量?

    在我的赞美诗中 我需要从中间开始第一小节 它的拍值是 3 4 但我必须插入两个空的 不显示的八分音符 我怎么做 我用过o4 o4 c8 d 下面是第一个措施 但 lilypond 不喜欢这样 正确的方法是什么 这是该行 o4 o4 c8 d
  • 使用 opencv 构建自定义 svm 内核矩阵

    我必须训练支持向量机模型 并且我想使用自定义内核矩阵 而不是预设的矩阵 如 RBF Poly 等 我怎样才能用opencv的机器学习库做到这一点 如果可能的话 谢谢你 AFAICT OpenCV 不直接支持 SVM 的自定义内核 看起来 L
  • 返回所有小于 M 的素数

    给定一个整数 M 返回所有小于 M 的素数 给出一个尽可能好的算法 需要考虑时间和空间复杂度 埃拉托斯特尼筛法是一个很好的起点 http en wikipedia org wiki Sieve of Eratosthenes
  • Java 最终字段值的“最新”保证是否扩展到间接引用?

    Java 语言规范定义了 Final 字段的语义第17 5节 Final 字段的使用模型很简单 在对象的构造函数中设置该对象的最终字段 在对象的构造函数完成之前 请勿将对正在构造的对象的引用写入其他线程可以看到的位置 如果遵循这一点 那么当
  • Laravel 如何制作自定义验证器?

    我需要制作自己的扩展验证器Illuminate Validation Validator 我读过这里的答案中给出的示例 Laravel 4 中的自定义验证 但问题是它没有清楚地展示如何使用自定义验证器 它不会显式调用自定义验证器 您能给我一
  • 如何通过DDP(WebSocket)协议访问meteor.com上托管的应用程序?

    我有一个Meteor app A和另一个应用程序B 不使用 Meteor 而是与应用程序进行一些数据交换A 当我启动时它工作正常A在我的本地网络中的一台计算机上 但是当我将其部署在meteor com 托管上时 它却没有 服务器没有回复 B
  • 如何调用 CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer?

    我正在想办法如何称呼这个AVFoundationSwift 中的函数 我花了很多时间摆弄声明和语法 才走到这一步 编译器大部分都很高兴 但我还有最后一个难题 public func captureOutput captureOutput A
  • 我可以通过placement-new覆盖const对象吗?

    基本生活 8告诉我们 我们可以在一个对象的生命周期结束后 使用它占用的存储空间来创建一个新的对象 并使用它的原始名称来引用它 除非 原始对象的类型不是 const 限定的 并且 如果是类类型 则不包含任何类型为 const 限定的非静态数据
  • 如何将文件写入相机所在的DCIM目录中?

    假设我正在编写一个替代的相机应用程序 并希望将图像写入与相机完全相同的位置 并以与相机完全相同的名称命名它们 我将如何实现这个目标 如何知道相机文件的位置 如何知道当前的命名约定 如何获得该目录的权限 任何答案将不胜感激 好吧 假设它不是真
  • 使用Meson时如何指定库路径?

    我正在尝试使用 Meson 构建一个 C 项目 问题是 我下面有一些库 opt conda但不知道运行时如何链接项目meson build 看来只能通过搜索了 usr lib目录 据我了解 meson uses cmake and pkg
  • 为什么这个 django-rest-swagger API 文档无法正常显示/工作?

    我构建了一个 Django API 当通过 POST 给出电子邮件地址时 它将用一个布尔值进行响应 指示天气或该电子邮件地址是否已存在于我的数据库中 class isEmailTaken views APIView permission c
  • Rails 预加载和 where 子句

    我渴望加载模型对象及其关联 user User includes posts find 1 但在代码中的某些点我想做这样的事情 user posts where topic gt x 但这只是再次重新运行查询 所以我想我会这样做 user
  • MercurialEclipse 插件的官方/活动主页是什么?

    我找不到 MercurialEclipse 插件的官方主页 有吗 而且我有一种奇怪的感觉 实际上有多个同名的项目 以下是我发现的一些项目 http code google com a eclipselabs org p mercuriale
  • Mathjax 无法在基于 Ajax 的网页中工作

    我正在使用 Mathjax 在 PHP Ajax 完成的 Web 应用程序中显示方程 首次加载页面时 方程会正确呈现 在同一页面中 当用户单击按钮时 ajax 代码会从数据库中获取一些数据并将其显示在同一页面上 但是 方程无法正确显示 相反
  • 使用 OpenJDK 12 通过 Mockito 启动 JUnit 时如何摆脱“无法初始化插件:接口 org.mockito.plugins.MockMaker”

    我一直在将一个项目从 Java 8 迁移到 Java 12 除了单元测试之外 一切都很顺利 当我使用 Maven 编译和启动测试时 许多测试失败并显示以下消息 java lang IllegalStateException Could no
  • 从 Inherited 接口调用 Method 时,传递动态参数会引发 RuntimeBinderException

    经过一些重构后遇到了一个有趣的运行时问题 并确定了以下情况 当将属性从动态对象传递到从父接口继承的接口上的方法时 运行时绑定器无法找到该方法 这是一个演示失败和成功的测试 直接在父接口类型上调用方法时 using System Dynami
  • Selenium 2.0 WebDriver 高级交互 DoubleClick 帮助 (c#)

    因此 在我的硒回归测试中 我一直在尝试双击日历来创建新的预约 我尝试使用 doubleClick 高级用户交互库中的方法 但有一个问题 两次单击速度不够快 不够近 无法触发实际的双击 有人在测试中找到解决这个问题的方法吗 这段代码对我有用
  • 即使手机处于睡眠状态也能保持服务运行吗?

    我的应用程序中有一个服务 设计为每 10 分钟运行一次 它主要检查我们的服务器 看看一切是否正常运行 并通知用户任何问题 我创建了这个应用程序供我们公司内部使用 我的同事在长周末使用了该应用程序 并注意到设备进入睡眠状态时没有执行任何检查
  • 获取资源的大小

    我在用着getClass getResourceAsStream path 从捆绑资源中读取 在读取整个流之前如何知道文件大小 我无法访问它们getClass getResource path toURI 当它被打包时 这样就不起作用了 我