在java中读取属性文件时出错[复制]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在java中读取属性文件时出错[复制]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我的项目目录看起来像这样

enter image description here

我收到以下错误

java.io.FileInputStream.open中的java.io.FileInputStream.open0(本地方法)中的线程“main”java.io.FileNotFoundException:/resources/config.properties(无此类文件或目录)中的异常(FileInputStream.java: 195)java.io.FileInputStream。(FileInputStream.java:138)at java.io.FileInputStream。(FileInputStream.java:93)at quartztest.QuartzTest.main(QuartzTest.java:36)/home/seng/.cache /netbeans/8.1/executor-snippets/run.xml:53:Java返回:1 BUILD FAILED(总时间:0秒)

我的代码如下

Properties prop = new Properties();
InputStream input = null;

input = new FileInputStream("/resources/config.properties");
prop.load(input);
答案

由于资源文件夹是源文件夹,您可以使用以下命令获取InputStream

input = QuartzTest.class.getResourceAsStream("/resources/config.properties");
另一答案

尝试使用此加载:

//Get file from resources folder
ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("config.properties").getFile());
另一答案

首先,以“/”开头表示您的搜索从root开始,而不是从子目录开始。

接下来,资源文件夹可能位于项目文件夹中,因此您必须使用getClass()。getClassloader()...来读取文件。然后,您只能使用文件名(如果它是唯一的),否则您必须提供使其唯一的路径。

如果使用FileInputStream,则必须提供文件的完整路径。

另一答案

我在这里看到两个选项:

  1. input = new FileInputStream("src/main/resources/config.properties");
  2. ClassLoader classloader = Thread.currentThread().getContextClassLoader(); InputStream is = classloader.getResourceAsStream("config.properties"); 第二个是首选,因为您需要根据资源文件夹指定相对路径

如果不从静态上下文中使用它,则可以简化检索类加载器

ClassLoader classLoader = getClass().getClassLoader();

以上是关于在java中读取属性文件时出错[复制]的主要内容,如果未能解决你的问题,请参考以下文章

显示在 java 中读取 mapreduce 程序的 CSV 文件时出错

急!用U盘拷贝文件时出错,代码:0x80070570文件或目录损坏且无法读取。

Windows 技术篇 - win10复制文件或文件夹时出错,提示“文件或目录损坏且无法读取“问题解决。windows驱动器磁盘修复方法

phpcms安装时设置文件属性

Android android.view.InflateException Binary XML 文件第 16 行:膨胀类片段时出错

读取 UITextfields 的值时出错