2012-12-31 38 views

回答

1

如果它不能爲紅色,那麼它最可能不是你期望的。根據你發佈的代碼判斷,我想你的xml文件是用來存放在jar/package結構中的。

這是我的測試項目結構:

src 
|-- main 
    |-- java 
     |-- mypackage 
       MyCode.java 
       MyResource.xml 

相應的生成jar文件位於target/目錄,如下所示:

mypackage 
    MyCode.class 
    MyResource.xml 

MyResource.xml看起來是這樣的:

<a>b</a> 

MyCode.java l ooks這樣的:

public class MyCode { 

public static void main(String[] args) throws Exception {   
    String packagePath= "/mypackage/MyResource.xml"; 
    String myPath ="src/main/java"+packagePath; 
    File f = new File(myPath); 
    System.out.println(f.exists());   
    InputStream is = Class.class.getResourceAsStream(packagePath);     
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
    DocumentBuilder db = dbf.newDocumentBuilder(); 
    Document d = db.parse(is); 
    System.out.println(d.getElementsByTagName("a").item(0).getTextContent());   
    }  
} 

在運行時它打印:

true 
b 

方法getResourceAsStream用於加載資源從JAR內。希望有所幫助。

+0

但是我得到一個異常:java.lang.IllegalArgumentException:InputStream不能爲空 – user1914867

+0

這意味着你的packagePath中有一個錯誤,或者文件沒有​​打包在JAR中。檢查你的路徑並打開JAR,並確保文件位於JAR中的確切位置,並具有在packagePath變量中類似指定的確切名稱。 – linski

+0

非常感謝你,它現在正在完善。 – user1914867

相關問題