从文件读取时java.net.URL缓存
发布时间:2020-12-15 00:27:11 所属栏目: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").openCo
似乎
java正在为URL(& files)保存某种缓存.
例如 我的classpath中的jar文件中有一个文件“resourcs.txt”. 该文件的内容是: “版本1” 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上被更快地触发,因为它不喜欢保持文件句柄打开太长时间…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- JavaFX 2.0选择框问题.如何在更新对象时更新表示对象列表的
- java HashMap,TreeMap与LinkedHashMap的详解
- Java中BIO、NIO、AIO的理解
- java – 为什么一般来说嵌套阻止注释不允许?
- java – JFace TableViewer vs TreeViewer – 性能
- java – 将令牌添加到lucene tokenstream
- 按IE后退按钮时让JSP不读缓存
- JAVA中字符串比较equals()和equalsIgnoreCase()的区别 冬蒽
- java – 如何使用DecimalFormat时总是显示小数部分?
- Hibernate实现悲观锁和乐观锁代码介绍