从文件读取时java.net.URL缓存
发布时间:2020-05-24 14:23:59 所属栏目:Java 来源:互联网
导读:似乎 java正在为URL( files)保存某种缓存. 例如 我的classpath中的jar文件中有一个文件“resourcs.txt”. 该文件的内容是: “版本1” new java.io.BufferedReader (new java.io.InputStreamReader( new URL(jar, , file:test.jar!/resourcs.txt).ope
|
似乎
java正在为URL(& files)保存某种缓存.
new java.io.BufferedReader (new java.io.InputStreamReader( new URL("jar","","file:test.jar!/resourcs.txt").openConnection().getInputStream())).readLine()
返回“版本1”(如预期的那样) 我将文件内容更改为“版本2”并再次调用此代码. 我该如何清除这个“缓存”. 注意:我发现它只发生在Linux上. 解决方法由于URL中使用了jar协议,因此连接是 sun.net.www.protocol.jar.JarURLConnection的实例,它可以从 sun.net.www.protocol.jar.JarFileFactory中实现的缓存中受益源代码确认URLConnection实现上的setUseCache(false)将阻止使用该缓存. 我关于Linux / Windows行为差异的假设:来自URLJarFileCloseController接口的关闭事件通知在Windows上被更快地触发,因为它不喜欢保持文件句柄打开太长时间…… (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
