Java 文件路徑的讀取
阿新 • • 發佈:2017-07-01
content extc classpath 標示符 current loader p s strong zh-cn
記得在操作系統中了解到文件讀取有兩種方式,當然這在各編程語言中也是通用的,所以java路徑也分,相對和絕對路徑。
絕對路徑
絕對路徑URI ,聽著和URL非常相似。那我們就來看看吧。
URI(Uniformresource Identifier)統一資源標示符.URL統一資源定位符,是一個定位器,還說明了詳細怎樣找到資源.所以他們就有一種抽象和繼承的關系。URI抽象的說明了統一資源表示符號,而URL是詳細的標識符的方式.
怎樣使用呢。
如我們想獲取一個類的詳細位置。僅僅要例如以下方式:
比如:test.class.GetResouce("");
假設中間加了"/",test .class.GetResouce("/");獲取的就是該java類的跟文件夾了。
兩者是不同的。
相對路徑
一般是相對於某一絕對路徑的,我們常使用的是相對於ClassPath。
如:使用ClassLoader類的getResouce()等方法。得到的是當前classPath相對路徑。
URL ds=Thread.currentThread().getContextClassLoader().getResource(""); System.out.print(ds+"\n"); System.out.print(ClassLoader.getSystemResource(""));
兩種結果是同樣的 .
若要讀取內容,直接使用字節流文件
InputStream in=ClassLoader.getSystemResourceAsStream(""beanx-config.xml"");
ClassLoader是類載入器,能夠指定載入特殊資源.上圖中為何同樣呢.原因在於Thread.currentThread()設定了當前的 ClassLoader.他們都指定默認的路徑.所以兩者路徑同樣.
整體認識:
URL是一種詳細的URI,它不僅唯一標識資源,並且還提供了定位該資源的信息。URI是一種語義上的抽象概念,能夠是絕對的,也能夠是相對的。而URL則必須提供足夠的信息來定位。所以,是絕對的,而通常說的 relative
URL,則是針對還有一個absolute URL,本質上還是絕對的.
Java 文件路徑的讀取