从文件读取时的 java.net.URL 缓存

2024-02-14

看起来 java 正在对 URL(和文件)进行某种缓存。 例如 我的类路径中的 jar 文件中有一个文件“resources.txt”。 该文件的内容是: “版本1”

new java.io.BufferedReader (new java.io.InputStreamReader( new URL("jar", "", "file:test.jar!/resourcs.txt").openConnection().getInputStream())).readLine()

返回“版本 1”(如预期)

我将文件内容更改为“版本 2”并再次调用此代码。 我仍然得到“版本 1”

我怎样才能清除这个“缓存”。

注意:我发现它只发生在 Linux 上。


因为jarURL 中使用的协议,连接是一个实例sun.net.www.protocol.jar.JarURLConnection http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7-b147/sun/net/www/protocol/jar/JarURLConnection.java它受益于实现的缓存sun.net.www.protocol.jar.JarFileFactory http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7-b147/sun/net/www/protocol/jar/JarFileFactory.java

源代码证实了setUseCache(false) on URLConnection实施将阻止使用该缓存。

我对 Linux/Windows 行为差异的假设:来自 URLJarFileCloseController 接口的关闭事件通知在 Windows 上触发得更快,因为它不喜欢让文件句柄打开太长时间......

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

从文件读取时的 java.net.URL 缓存 的相关文章

随机推荐

  • 如何在 Material UI 中布局表单?

    我正在尝试使用 MaterialUI Grid 组件和字段构建以下表单布局 Form Field 1 Field 2 TextArea
  • 从 Angular JS 表单发布数据时出错

    我有一个 angularJS 表单 它将数据发布到 scalatra servlet 提交表单后 我无法在 scalatra servlet 中获取任何表单参数 下面是我的代码 AngularJS scope createUser func
  • 使用 JavaScript 隐藏网格项

    我有一个 2 x 2 CSS 网格 每个网格项都简要描述了一项服务 小型企业网站 每个网格项都有一个按钮来了解有关所述服务的更多信息 当用户单击四个按钮之一以了解更多信息时 我希望该网格项展开以占据整个 2x2 网格 我已经在工作 并且其他
  • 尝试从联合中提取类型时出现类型错误

    我正在尝试将类型定义添加到一些使用通过网络工作人员传递消息的代码中 调度的消息有一个字符串类型的成员 可以在运行时使用它来区分它们 One type of Message export interface IOpenFileWMsg typ
  • 选择随机种子并保存

    我想选择一个随机种子numpy random并将其保存到变量中 我可以使用设置种子numpy random seed seed None 但是你如何让 numpy 选择一个随机种子并告诉你它是什么 号码好像用过 dev urandom默认情
  • Hibernate setMaxResult 对父集合也限制子集合

    我有一个带有 ManyToMany fetch FetchType EAGER 子集合的父实体 我只需要加载我找到的父实体的第一条记录 因此我使用以下标准加载它 session createCriteria Parent class set
  • 套件构建过程中出现异常如何解决?

    我已按照以下步骤测试我的应用程序 我已经创建了 Android 项目 我已经为我的示例应用程序和测试应用程序创建了调试签名 需要测试 将sampleapp debug apk放在bin文件夹中 我的工作区在那里 在模拟器中安装了 testa
  • 如何禁用ant design日期选择器中的所有星期日和特定日期数组

    以下代码禁用了包括今天在内的所有先前日期 但我想禁用 ant design 日期选择器中的所有星期日和特定日期数组 lt DatePicker size large format DD MM YYYY nChange this onDate
  • 如何在 Eloquent ORM Laravel 中删除“updated_at”同时保留“created_at”

    在 Laravel 中 我有一个仅创建但未更新的模型 所以 我只想删除updated at场地 但是created at字段为必填项 那么我怎样才能只删除updated at场 同时保持created at field 在您的模型中添加以下
  • 使用自动映射器映射异步结果

    我们正在创建 angularjs 应用程序的 Web Api 应用程序 Web Api 返回 json 结果 第一步是获取数据 public List
  • WSL,使用“wsl --exec ”或“wsl -- ”运行 linux 命令

    wsl h显示以下内容 exec e
  • “创建新的 Android 虚拟设备 (AVD)”对话框中的“确定”按钮不执行任何操作

    尝试通过以下步骤从 eclipse 环境创建 AVD 单击 Windows Android 虚拟设备管理器 这将打开 Android 虚拟设备管理器 对话框 在对话框中 单击 新建 这将打开 创建新的 Android 虚拟设备 AVD 对话
  • 反应未定义

    我刚刚开始玩反应宝石 https github com reactjs react rails但我似乎遇到了问题 使用下面的代码 每当我路由到 React 示例页面时 我注意到浏览器开发人员控制台中会显示 React 未定义 它指的是这一行
  • 终止信号示例

    我正在尝试这个例子 http www cs cf ac uk Dave C node24 html http www cs cf ac uk Dave C node24 html include
  • 检测目标 CPU 上的对齐内存要求

    我目前正在尝试构建一个可以在多种机器上运行的代码 从手持口袋和传感器到数据中心的大型服务器 这些架构之间的 许多 差异之一是对齐内存访问的要求 标准 x86 CPU 不需要对齐内存访问 但许多其他 CPU 需要它 如果不遵守规则 就会产生异
  • 如何清理未使用的Azure资源

    我的任务是清理 Azure 订阅中未使用的资源 总共有600多种资源 我更喜欢通过脚本 power shell 来执行此操作 因为我必须在多个订阅中重复此活动 首先也许我可以 gt 获取上次更新 活动时间 查看列表 gt 删除资源 有人已经
  • 为什么任何长度的密钥都适用于 RijndaelManaged?

    关于方法 RijndaelManaged CreateDecryptor Method Byte Byte Here https msdn microsoft com en us library 2f5ff61x v vs 110 aspx
  • 从 ArrayRef[HashRef] 强制 ArrayRef[MyClass]

    在试图回答的过程中如何从大哈希实例化 Moose 类 https stackoverflow com q 12483775 468327 我想我又遇到了一个我不完全理解 Moose 类型强制的地方 由于某种原因 以下代码发出警告 You c
  • Facebook Graph 受众洞察查询

    我在这里发现了一些有趣的 Facebook Graph API 文档 https developers facebook com docs graph api reference audience insights query https
  • 从文件读取时的 java.net.URL 缓存

    看起来 java 正在对 URL 和文件 进行某种缓存 例如 我的类路径中的 jar 文件中有一个文件 resources txt 该文件的内容是 版本1 new java io BufferedReader new java io Inp