无法访问项目目录中的XML文件

时间:2013-12-13 16:21:47

标签: java xml netbeans file-io

这里奇怪的情况和它让我疯狂。我的项目根目录中有一个骨架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);
    }

}

3 个答案:

答案 0 :(得分:2)

试试这个

document = builder.parse(this.getClass().getResourceAsStream("/resources/skeleton.xml"));

它对我有用

Netbeans

答案 1 :(得分:1)

你应该尝试使用完整路径。如果它有效,则意味着您的活动解决方案目录不是您想要的目录。

答案 2 :(得分:1)

好吧,尝试更改文件扩展名并再试一次。如果它有效,我会建议你使用专用的xml类来读取你的文件。试试.txt扩展名

还可以查看this。看起来您应该使用以下语法FileInputStream fis = new FileInputStream (new File(NAME_OF_FILE));