class.getResourceAsStream系统找不到指定的路径FileNotFoundException and DocumentException解决

两个错误如下:

1.

InputStream is4 = Dom4JDemo01.class.getResourceAsStream("itheimaJob/src/com/ayo666/__0108day14XML工廠裝飾模式編碼/src/books.xml");

org.dom4j.DocumentException: Cannot invoke "String.length()" because "spec" is null

解决办法:去掉工程文件夹名,com才是它的根目录。支持无目录简写,如果不写斜杠默认在包内同级找,写一个斜杠表示在根目录src级找。

 

2.

InputStream is1 = new FileInputStream("itheimaJob/src/com/ayo666/__0108day14XML工廠裝飾模式編碼/src/books.xml");

java.io.FileNotFoundException:itheimaJob/src/com/ayo666/__0108day14XML工廠裝飾模式編碼/src/books.xml (系统找不到指定的路径。)

解决办法:去掉工程文件夹名,src才是它的根目录。不支持无目录简写。"\\"等同于"/"。

 

另外以上都做对了还是报错怎么办!今天真的碰到了这种问题,不要怀疑自己,是IDEA的问题,Rebuild Project就欧了!这个功能在编译器的build工具栏里。有啥疑难杂症、未解之谜都请先rebuild一下吧!~

 

以下都是正确的路径,不用工程文件夹名就好了。

public class Dom4JDemo01 {
    @Test
    public void parse() throws Exception {
        // 1、创建一个dom4j的解析器对象:代表了整个dom4j框架。
        SAXReader saxReader = new SAXReader();

        // 2、加载xml文件成为字节输入流
        InputStream is1 = new FileInputStream("src/com/ayo666/__0108day14XML工廠裝飾模式編碼/src/books.xml");
        InputStream is2 = new FileInputStream("src/com/ayo666/__0108day14XML工廠裝飾模式編碼/src/books.xml");//呢個路徑又是從src開始,
        InputStream is3 = new FileInputStream("src\\com\\ayo666\\__0108day14XML工廠裝飾模式編碼\\src\\books.xml");//試下雙斜杠,效果一樣嘅,另外偏左係正斜杠咩。

        // 用于加载文件成为一个字节输入流返回,直接去src下寻找,但是必须带:/
        InputStream is4 = Dom4JDemo01.class.getResourceAsStream("/books.xml");//呢度填idea複製.xml嘅相對路徑都無用哦。呢度係從主src裡面取
        InputStream is5 = Dom4JDemo01.class.getResourceAsStream("/com/ayo666/__0108day14XML工廠裝飾模式編碼/src/books.xml");//成功咗,呢到嘅相對路徑不是itheima,也不是src,而是由com開始,可能因爲是.class比較特殊。
        InputStream is6 = Dom4JDemo01.class.getResourceAsStream("books.xml");//點解和.java放一個包裡面唔可以像src個樣搜索到。唔通佢只可以放src裡面。睇來唔得。等等,總結下
        InputStream is7 = Dom4JDemo01.class.getResourceAsStream("/com/ayo666/__0108day14XML工廠裝飾模式編碼/src/old/books.xml");
//rebuild project就得啦,並非路徑問題。但係呢個真係要從com開始哦

        // 3、把字节输入流解析成文档对象
        Document document = saxReader.read(is7);

        // 4、获取根元素对象
        Element root = document.getRootElement();
        System.out.println(root.getName());
    }

 

01091234補充,神奇的事情發生了

InputStream is = new FileInputStream("/books.xml"); //報錯,这个类不能简写路径
OutputStream is0 = new FileOutputStream("books.xml"); //真係outstream就可以簡寫,input唔得,it doesn't make a sense.

input和output居然待遇唔通嘅

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值