我是一个像这样的文件夹结构:
src\java\com\company\resources\xmlFile.xml
xml文件位于com.company.resources包中。我正在使用netbeans,所以这里是结构图:
我正在尝试将xml文件的地址作为字符串传递给另一个jar中的静态方法:
public static String createXMLStringFromDocument(String fileName){
try {
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory
.newInstance();
InputStream inputStream = new FileInputStream(new File(fileName));
org.w3c.dom.Document doc = documentBuilderFactory
.newDocumentBuilder().parse(inputStream);
StringWriter stw = new StringWriter();
Transformer serializer = TransformerFactory.newInstance()
.newTransformer();
serializer.transform(new DOMSource(doc), new StreamResult(stw));
return stw.toString();
} catch (Exception e) {
return e.toString();
}
}
应该传递什么?
这在Eclipse中运行的另一个项目中按预期工作,我将xml文件保留在项目的ROOT中。我传入文件名“xmlFile.xml”,它可以工作。但是我似乎无法在netbeans中使用它。我找到了一个找不到我尝试的所有地址的文件:
“src / java / com / company / resources / xmlFile.xml”等。
我在这里缺少什么。
答案 0 :(得分:4)
由于你的xml在类路径上,你不需要它的完整路径(因为如果文件在.jar文件中,可能很难或不可能获得)。你只需要获得一个流。使用:
InputStream is = YourClass.getResourceAsStream("/com/company/resources/xmlFile.xml");