[英]Can't get to a file located under src/main/resources/
我正在嘗試訪問位於資源下的文件並獲取null
:
File propertiesFile = new File(this.getClass().getClassLoader().getResource(file).getFile());
file = Log.csv
即使文件直接在資源下或在其下的文件夾之一下。 this.getClass().getClassLoader().getResource(file)
-返回null
this.getClass().getClassLoader().getResource(file).getFile()
捕獲直到resources
文件夾的路徑,如果您在resources
內部有文件夾,則必須提供該路徑以及文件名。
例如 -
resources -> folder -> test.csv
然后給文件名:
String file = "folder/test.csv";
希望這可以幫助!
資源不是文件系統上的實際File
,而是類路徑上的 。 可以將它們包裝在具有URL的jar中,例如"jar:file://.../xyz.jar!test.csv"
。 因此,使用InputStream。
InputStream in = getClass().getResourceAsStream("/test.csv");
String userHome = System.getProperty("user.home");
Path path = Paths.get(userHome, "test2.csv");
Files.copy(in, path, StandardCopyOption.REPLACE_EXISTING);
資源應被視為只讀 ; 因此,請將它們用作模板,初始空文件,只讀數據等。
ClassLoader在根src / main / resources下只有絕對路徑,而沒有以/
開頭。 類具有相對於類的包目錄的URL(但在src / main / resources下),或者以/
絕對路徑開頭。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.