簡體   English   中英

Java-具有類路徑的java.io.File

[英]Java - java.io.File with Classpath

我需要使用/定義一個java.io.File變量類型來獲取一個文件,該文件將作為參數發送到另一個方法。

現在我有了相對路徑:

File file = new File("C:/javaproject/src/main/resources/demo/test.txt");

我想使用ClassLoader更改它,如下所示:

ClassLoader.getSystemResource("/demo/test.txt");

但是我不能將其用於File中,因為它不是同一類型。 如果我使用.toString()則返回NullPointerException:

java.lang.NullPointerException: null

當我使用系統輸出打印它時,返回的結果是一個例外:System.out.println(ClassLoader.getSystemResource(“ demo / test.txt”)。toString());

文件夾和文件都存在。 為什么會出錯?

你可以這樣做:

try {
    URL resource = getClass().getClassLoader().getResource("demo/test.txt");
    if (nonNull(resource)) {
        File file = new File(resource.toURI());
        // do something
    }
} catch (URISyntaxException e) {
    LOGGER.error("Error while reading file", e);
}

答案顯示了ClassLoader.getSystemResourcegetClassLoader().getResource()之間的區別

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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