java取得檔案的路徑怎麼寫
我們在上傳檔案和檔案處理的時候需要取得資源文件的路徑。但是在專案中取得的文件路徑,可能並不是我們想要的文件路徑,因為開發專案中取得的路徑與打成jar包後的路徑並不一致。 (推薦教學:java教學)
1. 取得資源路徑
String filePath = this.getClass().getResource("").getPath(); System.out.println("filePath: " + filePath);
在專案開發中展示的路徑:
filePath: /home/idea/project/java_basic/selfimpr-fileupload/target/classes/com/selfimpr/fileupload/controller/
在專案打成jar套件中的路徑:
filePath: file:/home/idea/project/java_basic/selfimpr-fileupload/target/selfimpr-fileupload-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/com/selfimpr/fileupload/controller/
2. 取得專案檔案編譯路徑
String filePath = this.getClass().getResource("/").getPath(); System.out.println("filePath: " + filePath);
在專案開發中展示的路徑:
filePath: file:/home/idea/project/java_basic/selfimpr-fileupload/target/classes/
在專案打成jar套件中的路徑:
filePath: file:/home/idea/project/java_basic/selfimpr-fileupload/target/selfimpr-fileupload-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/
3. 取得專案根路徑(一)
File files = new File(""); String filePath = files.getCanonicalPath(); System.out.println("filePath: " + filePath);
在專案開發中所展示的路徑:
filePath: /home/idea/project/java_basic
在專案打成jar包中的路徑:
filePath: /home/idea/project/java_basic/selfimpr-fileupload/target
4. 取得專案根路徑(二)
String filePath = System.getProperty("user.dir"); System.out.println("filePath: " + filePath);
在專案開發中展示的路徑:
filePath: /home/idea/project/java_basic
在專案打成jar套件中的路徑:
filePath : /home/idea/project/java_basic/selfimpr-fileupload/target
5.開發環境和jar環境都能使用
/* 此方法,传入参数为String,不能带/ */ resourceAsStream = this.getClass().getClassLoader().getResourceAsStream("/templates" + url); /* 此方法,传入参数为String,不能带/ */ resourceAsStream = this.getClass().getResourceAsStream("/templates" + url);
此方法取得的專案路徑,不管是編譯期間還是打成jar包的環境,都能取得到resources路徑下的檔案。
以上是java獲取文件的路徑怎麼寫的詳細內容。更多資訊請關注PHP中文網其他相關文章!