黑马程序员技术交流社区

标题: 文件移植到到MyEclipse后的文件路径问题 [打印本页]

作者: 陈国柱    时间: 2013-9-17 17:15
标题: 文件移植到到MyEclipse后的文件路径问题
本帖最后由 陈国柱 于 2013-9-18 12:38 编辑

java文件移植到MyEclipse后,定义为当前目录下的文件为什么会获取不了的呢?FileReader fr = new FileReader("CopyTextByBuf.java");//运行后提示“Exception in thread "main" java.io.FileNotFoundException: CopyTextByBuf.java (系统找不到指定的文件。)”,我的包下面明明有这个文件的喔,怎么还是提示找不到文件的呢?不过使用绝对路径就没有问题的,有没有办法使得相对路径也可以运行通过呢?
  1. package day18to21;

  2. import java.io.*;

  3. class MyLineNumberReader extends MyBufferedReader//优化下面注释的代码
  4. {
  5.         private FileReader r;
  6.         private int lineNumber;

  7.         MyLineNumberReader(FileReader r)
  8.         {
  9.                 super(r);//继承父类
  10.         }

  11.         public String myReadLine() throws IOException
  12.         {
  13.                 lineNumber++;
  14.                 return super.myReadLine();//继承父类
  15.         }

  16.         public void setLineNumber(int lineNumber)
  17.         {
  18.                 this.lineNumber = lineNumber;
  19.         }
  20.         public int getLineNumber()
  21.         {
  22.                 return lineNumber;
  23.         }
  24.         

  25. }

  26. /*
  27. */

  28. public class MyLineNumberReaderDemo
  29. {
  30.         public static void main(String[] args) throws IOException
  31.         {
  32.                 FileReader fr = new FileReader("CopyTextByBuf.java");//运行后提示“Exception in thread "main" java.io.FileNotFoundException: CopyTextByBuf.java (系统找不到指定的文件。)”,我的包下面明明有这个文件的喔,怎么还是提示找不到文件的呢?不过使用绝对路径就没有问题的,有没有办法使得相对路径也可以运行通过呢?

  33.                 MyLineNumberReader mylnr = new MyLineNumberReader(fr);

  34.                 String line = null;
  35.                 mylnr.setLineNumber(100);
  36.                 while ((line=mylnr.myReadLine())!=null)
  37.                 {
  38.                         System.out.println(mylnr.getLineNumber()+"::"+line);
  39.                 }
  40.                 mylnr.myClose();
  41.         }
  42. }
复制代码

作者: 麦子609    时间: 2013-9-17 18:45
只给 文件名的时候会默认到工程的根目录下寻找这个文件,和src是同一层的,你试一下吧
作者: 狼人→浪人    时间: 2013-9-17 19:51
本帖最后由 狼人→浪人 于 2013-9-17 19:56 编辑

抱歉刚才发发错题了,还好及时发现

作者: 陈国柱    时间: 2013-9-17 20:12
麦子609 发表于 2013-9-17 18:45
只给 文件名的时候会默认到工程的根目录下寻找这个文件,和src是同一层的,你试一下吧 ...

试过,真是这样,不过感觉这样很麻烦,特别是要访问在同一个文件夹里面的java文件,有没有方法设置为默认访问到src目录下的?

作者: 麦子609    时间: 2013-9-17 20:23
  1. InputStream stream=Thread.currentThread().getContextClassLoader().getResourceAsStream("CopyTextByBuf.java");
复制代码
试一下这句话
作者: 陈国柱    时间: 2013-9-17 21:01
麦子609 发表于 2013-9-17 20:23
试一下这句话

返回的好像是空的,将其变成字符串后,总是出现空指针异常





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2