从助手类中读取资源

时间:2016-04-27 16:54:15

标签: java xml getresource

我正在尝试使用应该读取我的资源文件夹中的XML文件的方法编写一个辅助类,并获取一些我将在我的主类中工作的值。 我的项目结构如下所示:

Project
|
|---src
|    |
|    |---Main.class
|    |
|    |---Helper.class
|
|---resources
     |
     |---MYDOC.xml

到目前为止,我提出的Helper.class的代码是:

public class HelperClass {


static Document document;
static XPath xPath;

public HelperClass(){

  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;

} }

我已将resources文件夹设置为源文件夹,尝试了多种文件路径组合(/ MIDOC.xml,resources / MYDOC.xml等)但是当我尝试使用getValue时,我总是得到一个NullPointerException( )Main.class中的方法。

如果有人能解释我的错误或更好的解决方法,我将不胜感激,但我怀疑基本上我的整个代码都不好。

总结一下:我想创建一个HelperClass,它从xml文件中读取并获取值,然后在另一个类中使用这些方法。

提前感谢您的任何帮助/回答/批评。

1 个答案:

答案 0 :(得分:0)

在类路径中,如果xml在资源文件夹中,请尝试

HelperClass.class.getClassLoader().getResourceAsStream("resources/MYDOC.xml");

如果xml直接位于类路径下,请尝试

 HelperClass.class.getClassLoader().getResourceAsStream("MYDOC.xml");