`

关于java读取properties文件的路径问题

    博客分类:
  • J2SE
阅读更多
之前对于JAVA读取properties文件的路径一直模棱两可,晚上百度上查了一下资料然后自己做实验验证了一下,当前做一下记录,与写的不对的欢迎大家留言指正




当前实验工程的目录如上图所示,如果我们要读取的properties文件是放到classpath目录下(即放到src目录下,eclipse会将其自动编译到bin\目录下)这个是比较容易的看下面的代码:
package org.guo.leaning.path;

import java.io.File;
import java.io.FileInputStream;
import java.util.Properties;

public class ReadFile {
	public static void main(String[] args) throws Exception {
System.err.println(ReadFile.class.getResource(""));

		System.err.println(ReadFile.class.getResource("/"));
		
		
	}
	
/*上述的两个打印记录分别打印了类加载器加载文件时所搜索的目录; 如果参数是""的话,则默认是类路径(即当前类所处的classpath路径)开始找,上述第一个输出结果为:file:/E:/workspace/practice/bin/org/guo/leaning/path/   如果参数为"/"时,则从calsspath的跟路径开始找 输出的结果为:file:/E:/workspace/practice/bin/  有了上述两个路径作为参照,只要我们的properties文件放置在classpath跟目录下 就都可以实用类加载器找到该文件 */

private static String getPropsValue(String key) throws Exception {
InputStream inputStream = ReadFile.class.getClassLoader().getResourceAsStream("11.properties");

		props.load(inputStream);
		return props.getProperty(key);
}
/*
getResourceAsStream()方法即使用类加载器找到相应文件后转化为InputStream的一个方法,跟new File()然后构造一个InputStram是一样的
结合第一张图看:
(1):如果我想加载跟ReadFile处于同一目录下的11.properties文件,则参数为"11.properties,因为如果不写/默认是从当前类路径下开始加载的"
(2):如果我想加载org.guo.leaning包下面的文件则参数为"/org/guo/leaning/11.properties"因为我们是以/开头,所以是从calsspath根路径开始寻找,按照包结构写路径即可,看下classpath(默认bin)编译的路径位置就清楚了
(3):如果我想加载src根目录下的11.properties文件,则参数值为"/11.properties"原理同上

*/


//上述的情况都是在properties文件在classpath的情况下,使用的,如果我有个个properties文件不再classpath目录下,比如:我在项目根路径下建立了一个文件夹config里面有个11.proerties文件,那么我们该如何加载呢,此时我们就不能使用classLoader的相关方法了,因为他只能找classpath路径下的:

private static String getPropsValue(String key) throws Exception {
		Properties props = new Properties();
		File f = new File("E:\\workspace\\practice\\config\\11.properties");
		props.load(new FileInputStream(f));
	         props.load(inputStream);
		return props.getProperty(key);
	}

/*方法改为上述即可,即先建立一个文件,文件的路径要明确指出配置文件的路径,当然我们在写程序时可能不会直接写死,会做相关的处理将该路径得到。然后得到该文件的输入流即可。非classpath路径下配置文件的读取应该有更好的方式,但是我还没发现,希望有好方法的网友留言告诉我 谢谢  */


最后一个文件夹会不会包含在classpath路径下,主要在应用的.classpath文件下配置 如下:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
	<classpathentry kind="src" path="src"/>
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
	<classpathentry kind="output" path="bin"/>
</classpath>
  • 大小: 6.8 KB
分享到:
评论

相关推荐

    java读写properties文件,解决系统找不到指定路径,解决写入后读取正常,但文件数据未更新问题

    在处理Properties文件时,可能会遇到几个常见的问题,包括找不到指定路径、读取正常但文件数据未更新的情况。以下是对这些问题的详细解答。 首先,让我们解决“系统找不到指定路径”的问题。在Java中,加载...

    java读写properties文件,解决系统找不到指定路径,解决写入后读取正常,但文件数据未更新问题

    总结一下,处理Java中的Properties文件读写时,需要注意文件路径的准确性、文件的读写权限以及缓存问题。通过以上方法,应该能够有效解决描述中提到的问题。对于提供的"新建文本文档.txt",虽然不是Properties文件,...

    Java读取properties文件的三种方式

    总结,Java中读取properties文件的方法包括使用Properties类加载文件、通过ClassLoader获取类路径下的文件以及利用try-with-resources语句进行资源管理。根据具体的应用场景,选择合适的方法可以更高效地处理配置...

    java实现properties文件读取

    本篇将深入探讨如何使用Java来实现Properties文件的读取。 首先,我们需要了解Properties类在Java中的作用。`java.util.Properties`是Java提供的一个类,它继承了`Hashtable`,主要用于处理属性列表(键/值对)。...

    读取properties文件路径的两种方式.zip

    1. 如果`properties`文件位于项目文件系统的某个位置,而不是类路径中,可以使用`java.nio.file`包来读取。首先,确定文件的绝对路径。 ```java import java.io.IOException; import java.nio.file.Files; import ...

    Java读取Properties文件的六种方法

    ### Java读取Properties文件的六种方法 在Java开发中,`Properties` 文件常用于存储配置信息,如数据库连接字符串、应用配置等。正确且高效地读取这些配置文件对于程序运行至关重要。本文将详细介绍六种不同的方法...

    java读取properties配置文件

    本文将详细介绍如何在Java中读取`properties`配置文件。 首先,我们需要了解`properties`文件的格式。一个标准的`.properties`文件通常包含多个行,每行由一个键和一个值组成,它们之间用等号(`=`)或冒号(`:`)...

    JAVA读取properties文件的值

    在处理`.properties`文件时,可能会遇到文件找不到、读写权限不足等问题。因此,需要适当地捕获和处理`IOException`。 ### 8. 使用`@ConfigurationProperties` Spring框架提供了一种更高级的方式来绑定`....

    java读取配置文件

    最基础的方式是使用Java的I/O流来读取文本配置文件(通常是.properties格式)。例如,`java.io.FileInputStream`可以用来打开文件,然后`java.util.Properties`类可以加载并解析配置文件。以下是一个简单的示例: ...

    Python实现读取Properties配置文件的方法

    在Python编程中,有时我们需要处理Java开发中常用的`.properties`配置文件。虽然Python标准库并未直接提供处理此类文件的模块,但我们可以自定义一个类来实现这个功能。本篇文章将详细探讨如何通过Python来读取并...

    读取properties文件返回map

    本篇将详细讲解如何在Java中读取`properties`文件并将其内容转换为`Map`对象。 1. **properties文件结构** `properties`文件的结构非常简单,每行代表一个键值对,键和值之间用等号`=`或冒号`:`分隔。例如: ``` ...

    (转)java读取properties文件

    在Java编程中,读取`properties`文件是一个常见的任务,这些文件通常用于存储应用程序的配置信息,如数据库连接字符串、系统参数等。本篇将详细讲解如何在Java中读取`properties`文件,并通过提供的`...

    java读取properties文件

    本篇文章将深入探讨如何在Java中读取`properties`文件,无需依赖任何第三方库。 首先,我们需要了解Java的标准库中提供的`java.util.Properties`类。这个类提供了一种存储和加载属性列表的方法,它能够处理`....

    java 动态修改Properties,src下或者指定路径

    为了解决这个问题,我们可以将Properties文件放在JAR外部,然后通过代码来读取和更新这些文件。 在提供的代码示例中,有一个名为`WriteFile`的类,它包含了一个静态方法`writeData`,专门用于修改Properties文件。...

    java完美读取properties文件

    本篇文章将详细讲解如何在Java中“完美”地读取`properties`文件。 首先,我们需要了解`properties`文件的基本结构。它是一个文本文件,其中键值对以`key=value`的形式存储,每一行代表一个键值对,注释以`#`或`!`...

    关于java 读取eclipse下文件相对路径 关于Java的文件相对路径问题一直 ....doc

    如果你想要从这个Java文件读取`yyy.properties`,假设它位于`src\env`目录,那么正确的相对路径应该是`./src/env/yyy.properties`。这里,`.`代表当前目录,也就是`src\come\home\basic`,然后你向这个目录添加相对...

    读取properties返回map并写入文件

    在上述代码中,我们首先创建一个Properties对象`props`,然后通过`load()`方法从指定路径的文件中读取内容。接着,我们遍历Properties对象的键集,将每个键值对添加到HashMap`map`中。这样,我们就得到了一个键值对...

    java读取properties文件,连接数据库

    本文将详细介绍如何使用Java读取`.properties`文件并利用这些信息连接到数据库。 首先,我们需要理解`.properties`文件的结构。这是一种简单的键值对格式,例如: ``` database.url=jdbc:mysql://localhost:3306/...

    Java读取Properties文件的六种方法.txt

    ### Java读取Properties文件的六种方法 在Java开发中,`Properties`类是一个非常实用且常见的工具类,主要用于管理程序中的配置信息。通常情况下,这些配置信息会被存储在一个`.properties`文件中,并通过`...

Global site tag (gtag.js) - Google Analytics