2017-12-18 139 views
-1

我的项目目录看起来像这样错误读数性质的Java文件

enter image description here

我收到以下错误线程

异常“主要” java.io.FileNotFoundException: /resources/config.properties(没有这样的文件或目录) java.io.FileInputStream.open0(Native Method) java.io.FileInputStream.open(FileInputStream.java:195)at java.io.FileInputStream。(FileInputStream.java:138)at java.io.FileInputStream。(FileInputStream.java:93)at quartztest.QuartzTest.main(QuartzTest.java:36) /home/seng /。高速缓存/ netbeans的/ 8.1 /执行-片段/ run.xml:53:的Java 返回:1个BUILD FAILED(总时间:0秒)

我如下

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

input = new FileInputStream("/resources/config.properties"); 
prop.load(input); 
+0

看看这个了 https://www.mkyong.com/java/java-read-a-file-from-resources-folder/ – GuyKhmel

回答

0

作为资源的代码文件夹是源文件夹,您可以通过以下方式获得InputStream

input = QuartzTest.class.getResourceAsStream("/resources/config.properties"); 
0

尝试使用此加载:

所有的
//Get file from resources folder 
ClassLoader classLoader = getClass().getClassLoader(); 
File file = new File(classLoader.getResource("config.properties").getFile()); 
0

首先,在开始用“/”表示搜索从根开始,而不是从一个子目录。

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

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

0

在这里我看到两个选项:

  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();