使用Class &ClassLoader獲取資源

使用Class &ClassLoader獲取資源
Class & ClassLoader獲取資源的時候都需要使用到資源名。資源名傳遞給Class的方法時,可以使用前置反斜線(/)表示這是一個絕對路徑,而不使用前置反斜線(/)的時候表示一個相對路徑。資源名傳遞給ClassLoader的方法時,需要只用去掉前置反斜線(/)的“絕對路徑”,而不能使用相對路徑。
Class 
使用Class的時候,傳遞給它的資源名稱既可以是絕對路徑,也可以是相對路徑。而反斜線(/)一般是代表編譯後的class的根目錄,而相對路徑則是相對於當前調用者所屬類的路徑。
ClassLoader
只用ClassLoader的時候,資源文件被看作一個類文件來加載的,它的資源名是去掉反斜線(/)表示的“絕對路徑”,都是從編譯後的class根目錄開始表示的,對於相對路徑而言,必須轉換爲相應的“絕對路徑”之後才能使用ClassLoader來定位加載。

資源名

完整的資源名也就是路徑有絕對和相對之分,雖然他們都可以表示同一個資源文件,但使用起來確實有一定的差別。 在Java中,以反斜線(/)開始的路徑被認爲是絕對路徑,相反,以非反斜線(/)開始的路徑被稱爲相對路徑。我們的認識中的絕對路徑是沒有前置的反斜線(/)的,如
E:/some/directory/path/file.xml  
,其實在Java中的表示是有前置的反斜線(/)的。Java中獲取資源的URL後真實地址是這個:
file:/E:/workspace/Test/bin/com/test/Main.class  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章