这里奇怪的情况和它让我疯狂。我的项目根目录中有一个骨架XML文件,我想将它读入我的程序并根据用户输入进行修改。我收到一个文件未找到异常,我无法理解为什么。我的项目叫做customerCreator。 XML文件位于:
C:\Users\user\Documents\NetBeansProjects\CustomerCreator\skeleton.xml
我的Java源文件位于:
C:\用户\用户\文件\的NetBeansProjects \ CustomerCreator \ SRC \的java \组织\用户\ r6CustomerCreator \解析器\ XMLParser.java
编辑:使用绝对文件路径会导致以下错误:java.lang.IllegalArgumentException:InputStream不能为null
public class XMLParser {
public XMLParser(Map paramMap) {
parseXML(paramMap);
}
private void parseXML(Map<String, String> paramMap) {
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
Document document = null;
try {
builder = builderFactory.newDocumentBuilder();
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
try {
document = builder.parse(new FileInputStream("skeleton.xml"));
} catch (SAXException | IOException e) {
e.printStackTrace();
}
System.out.print(document);
}
}
答案 0 :(得分:2)
试试这个
document = builder.parse(this.getClass().getResourceAsStream("/resources/skeleton.xml"));
它对我有用
答案 1 :(得分:1)
你应该尝试使用完整路径。如果它有效,则意味着您的活动解决方案目录不是您想要的目录。
答案 2 :(得分:1)
好吧,尝试更改文件扩展名并再试一次。如果它有效,我会建议你使用专用的xml类来读取你的文件。试试.txt扩展名
还可以查看this。看起来您应该使用以下语法FileInputStream fis = new FileInputStream (new File(NAME_OF_FILE));