在java中读取属性文件时出错[复制]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在java中读取属性文件时出错[复制]相关的知识,希望对你有一定的参考价值。
这个问题在这里已有答案:
我的项目目录看起来像这样
我收到以下错误
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,则必须提供文件的完整路径。
我在这里看到两个选项:
input = new FileInputStream("src/main/resources/config.properties");
ClassLoader classloader = Thread.currentThread().getContextClassLoader(); InputStream is = classloader.getResourceAsStream("config.properties");
第二个是首选,因为您需要根据资源文件夹指定相对路径
如果不从静态上下文中使用它,则可以简化检索类加载器
ClassLoader classLoader = getClass().getClassLoader();
以上是关于在java中读取属性文件时出错[复制]的主要内容,如果未能解决你的问题,请参考以下文章
显示在 java 中读取 mapreduce 程序的 CSV 文件时出错
急!用U盘拷贝文件时出错,代码:0x80070570文件或目录损坏且无法读取。
Windows 技术篇 - win10复制文件或文件夹时出错,提示“文件或目录损坏且无法读取“问题解决。windows驱动器磁盘修复方法
Android android.view.InflateException Binary XML 文件第 16 行:膨胀类片段时出错