大家帮忙看下,FileReader读取File为什么会出错?

powerwbj 2010-01-17 04:17:22
现在有两个Java文件:

1. public class ReaderAndWriter {

public static void main(String[] args) {

MyReader reader = new MyReader("ppp.txt");

System.out.println("please enter the object character:");

......
}


2. public class MyReader {
private BufferedReader reader;

private int object;

public MyReader(String file) {
try {
File f = new File(file);
System.out.println(f.getName());
FileReader r = new FileReader(f); // 设置断点,程序运行到这一步,抛出文件不存在的异常

reader = new BufferedReader(r);
} catch (FileNotFoundException e) {
System.out.println("文件读取失败!");
e.printStackTrace();
}

System.out.println("文件读取成功!");
object = -1;
}

......

PS: 在上面两个Java程序的相同目录下,有ppp.txt文本文件, 可是为什么在Eclipse中,Debug代码到断点处,程序向下运行,就会抛出FileNotFoundException ?

请大家帮帮忙看看!谢谢!

...全文
512 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
powerwbj 2010-01-19
  • 打赏
  • 举报
回复
不好意思来晚了,谢谢大家的回复,如果要只写ppp.txt的话,应该是把ppp.txt文件放在工程的根目录下面,和src平级,而不是放在src下面。
用getAbsolutePath()方法测试一下就可以知道File对象的相对路径了,所以xiesisi3和zhuyouyong的回答是最贴切的!
xllee 2010-01-18
  • 打赏
  • 举报
回复
既不是bin目录,也不是src目录,而是工程的目录下,和src,bin同根
darktop 2010-01-18
  • 打赏
  • 举报
回复
路径有问题
linglinghao 2010-01-18
  • 打赏
  • 举报
回复
抛出FileNotFoundException异常,就表示你文件的路径有问题或者没有这个文件
nicole3life 2010-01-18
  • 打赏
  • 举报
回复
MyReader reader = new MyReader("ppp.txt");
你这样写的话 有没有把ppp.txt这个文件放到你写代码的那个文件目录下面呢???
qhgxinxing 2010-01-18
  • 打赏
  • 举报
回复
还是相对路径的问题 调试的时候执行的路径变了了 f.getAbsolutePath() 调试下 看看在调试下用的相对路径的根路径是什么
xiesisi3 2010-01-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 powerwbj 的回复:]
我是在eclipse环境下测试的,Java文件和ppp.txt文件都是位于Java Web工程的src\com\wbj\test\目录下面,现在我把ppp.txt文件的路径全部写全写死,即将ReaderAndWriter.java中的

MyReader reader = new MyReader("ppp.txt");
改变为
MyReader reader = new MyReader("D:\\WorkSpace\\CodeWareHouse\\src\\com\\wbj\\test\\ppp.txt");

这样程序在断点处就能正确执行了,如果不写路径直接用ppp.txt文件名作为构造函数的参数值得话,无论是

把ppp.txt文件放在src根目录还是classes目录下面,断点处都会抛出异常,不知道究竟问题出在哪里?
[/Quote]

如果直接写ppp.txt的话,是用的相对目录,它会寻找与该工程目录下面的第一个目录里面的文件

如果你觉得不是很清晰的话,你可以这样

File f = new File("ppp.txt");
System.out.println(f.getAbsolutePath());

这样执行看实际上ppp.txt的路径是在哪里,然后你再将文件放到相应的位置。
powerwbj 2010-01-18
  • 打赏
  • 举报
回复
自己再顶一下!
zhuyouyong 2010-01-18
  • 打赏
  • 举报
回复
应该是文件的存放位置不正确,应该放在project目录下面和src,bin是同一级的,估计楼主是把它放在了src中了吧?
2到20个英文 2010-01-18
  • 打赏
  • 举报
回复
写着玩
直接放盘根目录得了
比如

D:\\aa.txt
powerwbj 2010-01-17
  • 打赏
  • 举报
回复
我是在eclipse环境下测试的,Java文件和ppp.txt文件都是位于Java Web工程的src\com\wbj\test\目录下面,现在我把ppp.txt文件的路径全部写全写死,即将ReaderAndWriter.java中的

MyReader reader = new MyReader("ppp.txt");
改变为
MyReader reader = new MyReader("D:\\WorkSpace\\CodeWareHouse\\src\\com\\wbj\\test\\ppp.txt");

这样程序在断点处就能正确执行了,如果不写路径直接用ppp.txt文件名作为构造函数的参数值得话,无论是

把ppp.txt文件放在src根目录还是classes目录下面,断点处都会抛出异常,不知道究竟问题出在哪里?
crazylaa 2010-01-17
  • 打赏
  • 举报
回复
路径不对,既然是测着玩,就直接写全路径,否则把文件放在你的src或编译后的classes目录下!
张祥龙 2010-01-17
  • 打赏
  • 举报
回复
把ppp.txt放在项目的根目录下
leilei_java 2010-01-17
  • 打赏
  • 举报
回复
c:/11/ppp.txt
全路径写上试试
leilei_java 2010-01-17
  • 打赏
  • 举报
回复
路径呢?

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧