[英]Java: How do I open a text file in test that is in src/main/resources?
我的項目結構看起來像
project/
src/main/
java/ ...
resources/
definitions.txt
test/
CurrentTest.java
resources/ ...
在我的測試中,我需要打開definitions.txt
我做
@Test
public void testReadDesiredDefinitions() throws PersistenceException, IOException {
final Properties definitions = new Properties();
definitions.load(new ResourceService("/").getStream("desiredDefinitions"));
System.out.println(definitions);
}
當我跑這個時,我明白了
java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Properties.java:418)
at java.util.Properties.load0(Properties.java:337)
at java.util.Properties.load(Properties.java:325)
我該如何閱讀此文本文件?
謝謝
單元測試的“當前目錄”通常是項目目錄,因此使用:
File file = new File("src/main/resources/definitions.txt");
並從文件加載屬性:
definitions.load(new FileInputStream(file));
如果這不起作用,或者你想檢查當前目錄是什么,只需打印出路徑,很明顯當前目錄是什么:
System.out.println(file.getAbsolutePath());
您可以使用Class#getResourceAsStream輕松創建資源文件的流。
definitions.load(getClass().getResourceAsStream("/main/java/resources/definitions.txt"));
location參數應該是與項目庫有關的相對文件路徑(我的猜測是主要的)。
如果resources
目錄是源文件夾,則可以使用/resources/definitions.txt
作為正確的路徑。
我不知道ResourceService
但這應該工作:
final Properties definitions = new Properties();
definitions.load(getClass().getResourceAsStream("/resources/definitions.txt"))
文件文件=新文件(“../ src / main / resources / definitions.txt”);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.