我想用應該讀取我的資源文件夾內的XML文件的方法來編寫助手類,並獲取我將在我的主類中工作的一些值。 我的項目結構如下:從助手類中讀取資源
Project
|
|---src
| |
| |---Main.class
| |
| |---Helper.class
|
|---resources
|
|---MYDOC.xml
而對於Helper.class我想出了到目前爲止的代碼是:
public class HelperClass {
static Document document;
static XPath xPath;
公共助手類(){
try {
InputStream stream = HelperClass.class.getResourceAsStream("MYDOC.xml");
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = builderFactory.newDocumentBuilder();
document = builder.parse(stream);
xPath = XPathFactory.newInstance().newXPath();
}
catch (FileNotFoundException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
};
static String getValue(){
String result = "";
String expression = "/SOMETHING/SOMETHING/VALUE";
try {
result = xPath.evaluate(expression, document);
} catch (XPathExpressionException e) {
e.printStackTrace();
}
return result;
}}
我已經設置了資源文件夾作爲源文件夾,試圖文件路徑的多種組合(/MYDOC.xml,資源/ MYDOC.xml等),但是當我我總是一個NullPointerException嘗試使用Main.class中的getValue()方法。
如果有人能解釋我做錯了什麼或解決這個問題的更好方法,我將不勝感激,但我懷疑基本上我的整個代碼是不好的。
總結:我想創建一個HelperClass,它讀取並獲取xml文件中的值,然後在另一個類中使用這些方法。
非常感謝您的幫助/回答/評論。
編譯到一個.jar文件,並期待通過一個zip實用程序進入它。它應該包含MYDOC.xml。如果沒有資源必須是IDE中的源文件夾。如果在jar文件中路徑是resources/MYDOC.xml,那麼使用它作爲相對或絕對路徑「/resources/MYDOC.xml」。並介意區分大小寫的文字。 –
轉到你的類文件夾,你能看到xml文件以及你的.class文件嗎? –
@JoopEggen編譯它,文件在裏面。 –