DataInputStream dataInputStream = new DataInputStream(MaxLoader.class.getResourceAsStream("/" + path));当前程序如上,是采用ClassLoader来加载资源的,给的路径是相对路径,这个大家都看的出来.现在我想改成绝对路径,但是这个getResourceAsStream没有输入绝对路径这样的说法,所以想请问各位亲有没有我试验过改成:
dataInputStream = new DataInputStream(new FileInputStream(绝对路径)),但是这样的方法不可行,读取出来的数据不对,所以还是只能用getResourceAsStream,各位亲,有什么好办法么? 在不改变getResourceAsStream方式的情况下传入绝对路径?

解决方案 »

  1.   

    应该不行,getResourceAsStream加不加/都是相对于当前工程而言的,所以绝对路径(指系统路径,如c:\\)是访问不到的。
      

  2.   

    那有没有办法改成其他的方式呢,效果和MaxLoader.class.getResourceAsStream("/" + path)一样?
      

  3.   

    你是要获取绝对路径?系统盘的,比如D:\\1.txt?
      

  4.   

    那你改为new DataInputStream(new BufferedInputStream(new FileInputStream(path)));path是绝对路径
      

  5.   

    研究了半天,效果是ok了:File f = new File(path);
    URL u = f.toURI().toURL();
    dataInputStream = new DataInputStream(u.openStream());