在java中讀取讀取文件,常常由於路徑的問題找不到,此文用於記錄如何定位文件的簡單方法。java
本基於springboot作的測試,主要是構建工程方便,所用的方法都是JDK中的方法,主要測試有」/「和沒有""的問題,以及getResourceAsStream(String string)
和getResource(String string)
的問題。spring
解釋一下,主要有兩個配置文件,a.properties
和b.properties
,a.properties
方法java的代碼裏,b.properties
放在resources的配置目錄中。springboot
編譯以後,classpath
的路徑爲:target/classes
,斜線"/"指的也是這個路徑,全部,若是有斜線就會去這個路徑下面去找,若是沒有斜線,就會去那個類的當前坐在路徑去找。測試
public class TestPath { public static void main(String[] args) { TestPath t = new TestPath(); //在當前TestPath類所在的包查詢 InputStream a = t.getClass().getResourceAsStream("a.properties"); //在classpath路徑下進行查詢 InputStream b = t.getClass().getResourceAsStream("/b.properties"); //在當前TestPath類所在的包查詢 URL url_a = t.getClass().getResource("a.properties"); //在classpath路徑下進行查詢 URL url_b = t.getClass().getResource("/b.properties"); System.out.println(); } }
以上,兩個方法均可以用來定位文件,區別有兩個:url
getResourceAsStream()
返回的是InputStream
,能夠直接讀取。getResource()
返回的是URL對象,方便獲取文件的path路徑。