小错误求助

不学习就落后 2011-12-06 01:04:26

package cn.itcast.IoTest;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class IOTest {

public static void main(String[] args) {
try {
FileReader fin = new FileReader("test.txt");
int ch;
while((ch=fin.read())!=-1)
{
System.out.println(ch);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}

}


运行之后报错为:
Exception in thread "main" java.io.FileNotFoundException: test1.txt (系统找不到指定的文件。)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileReader.<init>(Unknown Source)
at cn.itcast.IoTest.IOTest1.main(IOTest1.java:10)
1.请问为什么没有打出异常栈信息,即e.printStackTrace();为什么没作用,效果和直接抛出异常不进行处理是一样的
2.test1.txt是应该放在这个包中跟java源文件在同一目录下吗?为什么我放在哪都是一样的错误!
...全文
62 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxbccsu 2011-12-06
  • 打赏
  • 举报
回复
1. 不明白,为什么没有打印;e.printStackTrace()就是给System.err,就是标准的错误流;如果直接抛出异常的话,就是由调用main方法的对象处理;

2. test1.txt放在这个包中跟java源文件在同一目录下,这样应该指定绝对路劲;
如果不是,应该放到你应用的根目录(如果是eclipse建立的Java project,就是project名下);
最好是放在IOTest.class目录中,就是包中,然后改成这样:
FileReader fin = new FileReader(IOTest.class.getResource("").getPath()+"/test.txt");
funfenffun 2011-12-06
  • 打赏
  • 举报
回复
绝对路径:
d:/test.txt
或者
d:\\test.txt
iori20099 2011-12-06
  • 打赏
  • 举报
回复
test.txt要相对与这个class文件的位置是他的相对位置,可以写绝对路径D:\test.txt
funfenffun 2011-12-06
  • 打赏
  • 举报
回复
test.txt放项目路径下,跟src并列
quhuafeng521 2011-12-06
  • 打赏
  • 举报
回复
FileReader fin = new FileReader("test.txt");
写绝对路径试试
  • 打赏
  • 举报
回复
不是放哪的问题 而是写的路径的问题
写全实际路径
例 d://text1.txt
hzc543806053 2011-12-06
  • 打赏
  • 举报
回复
你多写了一个
catch (IOException e) {
e.printStackTrace();
}

67,541

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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