在项目使用getResourceAsStream()方法出现了问题:
在项目运行状态下property文件已经被改动了,但是使用getResourceAsStream()方法读取的文件没发生变化,还是和最初启动服务器时的一致。在网上查了一下,有人说是getResourceAsStream()方法读取新文件后会被java虚拟机缓存,而再次调用getResourceAsStream()方法时会先查找java虚拟机中是否有此文件,如果有则直接返回,如果没有才会去根据传入的name获取文件。
开始我写的代码:
final Properties prop = new Properties();
Property(String file){
try {
prop.load(this.getClass().getResourceAsStream(file));
} catch (FileNotFoundException e) {
e.printStackTrace(System.err);
} catch (IOException e) {
e.printStackTrace(System.err);
}
}
改动后的代码:
final Properties prop = new Properties();
Property(String file){
try {
prop.load(new FileInputStream(this.getClass().getResource(file).getFile()));
} catch (FileNotFoundException e) {
e.printStackTrace(System.err);
} catch (IOException e) {
e.printStackTrace(System.err);
}
}
这样,这样就不会出现缓存问题了。
需要说明一下的是,我这是java web项目,所以需要通过this.getClass().getResource(file).getFile()这样的代码来获取路径。
其中传入的文件名参数file可以是“/binessID.properties”这样的路径。
加上“/”表示从classpath下查找文件,不加“/”是从当前class类目录下查找。
这个可以参考http://lc9696lc.iteye.com/blog/737960
分享到:
相关推荐
Java中getResourceAsStream的用法.md
在Java编程中,`getResourceAsStream` 是一个非常实用的方法,用于从类路径或者特定上下文中获取资源流,通常用来读取配置文件、图片、XML文档等静态资源。这个方法在处理与代码打包在一起的非代码文件时非常方便。...
java getResourceAsStream种类,分我所知道的3种情况
在Java编程中,`getClass().getResourceAsStream()`是一个非常实用的方法,用于从类路径(Classpath)中加载资源,如配置文件、图片、字体等。这个方法返回一个`InputStream`对象,可以通过它读取到资源文件的内容。...
在 Java 项目中,读取包内文件可以使用 `getResourceAsStream` 方法。例如,`InputStream in = ReadFile.class.getResourceAsStream("/com/lavasoft/res/a.txt");` 可以读取包内的文件 `a.txt`。 Java Web 项目中...
在Java编程中,读取项目中的文件,特别是位于`src`目录下的文件,是一个常见的需求。这涉及到对项目结构的理解和使用Java I/O流的知识。`src`目录通常包含源代码文件,而运行时,这些文件会被编译并放置到类路径...
本文将深入探讨Java路径问题,包括如何解决Java安装和使用过程中的常见路径问题,以及如何有效地管理类路径(classpath)。 #### 一、Java路径基础 Java路径主要涉及两种类型:类路径(classpath)和系统路径。类路径...
在Java中,可以使用ClassLoader的`getResource()`和`getResourceAsStream()`方法,以相对路径的方式查找类路径下的资源。 四、相对于当前用户目录的相对路径 例如:相对于System.getProperty("user.dir")返回的路径...
为了在实际项目中更灵活地处理图片资源,开发者通常会将图片文件放入项目的资源目录,然后使用类加载器(`Class.getResource()`或`Class.getResourceAsStream()`)来获取图片的URL,以便在不同环境下都能正确加载。...
在Java编程中,读取资源文件是一项常见的任务,特别是在开发应用程序时,我们可能需要加载配置文件、图片、音频或视频等资源。在这个场景下,我们将深入探讨如何在IntelliJ IDEA(Idea)环境中读取资源文件,特别是...
在Java开发中,经常会遇到需要获取文件路径的情况,尤其是在处理配置文件、图片等资源时。本文将详细介绍Java中获取文件路径的各种方法及其应用场景,帮助开发者更好地理解和掌握这些技巧。 #### 二、基本概念 在...
在Java编程中,Swing库提供了丰富的组件和功能来创建图形用户界面(GUI)。当我们需要在Swing应用中展示图片时,可以利用特定的方法来读取并显示图像。本篇文章将详细讲解如何在Java Swing中读取和显示图片,以及与...
首先,我们可以通过`java.lang.Class`类的`getResource`或`getResourceAsStream`方法来获取类路径中的资源文件路径。这两个方法都是在类路径中查找资源,返回一个URL对象,从中可以获取路径信息。例如,如果我们有一...
Java Properties 类是Java标准库中...总之,Java Properties类是Java开发中处理配置文件的利器,通过它的方法可以方便地读取、修改和保存配置信息,尤其在处理包含中文字符的配置时,注意编码问题,确保数据的正确性。
在Java编程语言中,Applet是一种特殊的类,它允许开发者创建可以在Web浏览器中运行的小型Java应用程序。Applets常用于创建交互式的Web内容,其中包括加载和显示图像。本篇文章将详细探讨如何在Java Applet中加载图像...
在Java开发过程中,经常会遇到需要读取资源文件的情况,比如配置文件、属性文件等。这些文件中的内容有时会非常长,或者为了提高可读性,需要进行换行处理。本文将详细介绍如何在Java中正确处理这种场景。 #### 一...
在Java编程中,Properties文件是用于存储配置信息的关键组件,如数据库连接字符串、应用程序设置等。在处理Properties文件时,可能会遇到几个常见的问题,包括找不到指定路径、读取正常但文件数据未更新的情况。以下...
总之,理解并熟练运用`getResource`和`getResourceAsStream`是Java开发人员必备的技能之一,它们是连接Java代码与类路径中资源的关键桥梁。正确地使用这些方法,可以使得你的应用程序更加高效、可靠。
本文将深入探讨Java中的路径问题,并提供一个有效的解决方案,该方案旨在简化路径处理过程,使得开发者能够更加灵活地管理和访问不同环境下的资源。 #### 二、Java路径类型 Java中使用的路径主要分为两大类:绝对...
在Java开发中,特别是在Web应用开发中,经常需要获取不同类型的路径,例如:当前Web应用的路径、特定文件的真实路径等。本文将详细讲解如何通过不同的方式来获取这些路径。 #### JSP中获取路径 1. **获取当前应用...