2017-12-18 100 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();