簡體   English   中英

Java:如何在src / main / resources中的test中打開文本文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM