[英]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.getSystemResource
和getClassLoader().getResource()
之間的區別
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.