java File exists函数 为什么我判断文件是否存在的时候,总是返回false,文件在目录下是存在的

naughty610 2010-02-04 10:34:10
RT,很不明白


File file = new File("ChineseDictionary.dat");
System.out.println("文件存在么?");
System.out.println(file.exists());

//下面的if语句给dic初始化
if (file.exists()) {
dic = dic.loadDic("ChineseDictioanry.dat");
} else {
dic.loadDic(file);
}
...全文
13981 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mr.Z@overflow 2012-07-13
  • 打赏
  • 举报
回复
在Eclipse中,用户当前目录默认是项目文件夹。因此
File file = new File("ChineseDictionary.dat");
得到的文件路径是 项目路径/ChineseDictionary.dat
naughty610 2010-02-06
  • 打赏
  • 举报
回复
文件名拼错了。。。晕我竟然也犯这么低级的错误。谢谢楼上所有的人,揭帖给分
naughty610 2010-02-05
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 shizhuxiong 的回复:]
你用绝对地址试试
[/Quote]我用了绝对路径在其他java文件里试过了,可以的。但是在我写的那个文件就不行。
txspace 2010-02-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 naughty610 的回复:]
引用 6 楼 zhangmicky 的回复:
楼主如果是用eclipse的话,这个文件应该放在项目目录下,不是bin或者src目录。我正在用这个,刚试了试没问题的。 -- 不过楼主已经说了

如果楼主是用命令行的话,这个文件应该和.java放在一起

另外,为啥不用FileNotFoundException来处理?
您好。我不懂您说的FileNotFoundException是怎么回事。我是初学的。用这个应该怎么处理呢?谢谢您的答复。
[/Quote]

try {
FileReader fr = new FileReader(new File(Test.class.getResource("").getPath()+"/201001.txt"));
BufferedReader br = new BufferedReader(fr);
String str;
// while((str = br.readLine())!=null){
// System.out.println(str);
// }
} catch (FileNotFoundException e) {//捕获异常
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

像这样,如果文件不存在就会打印堆栈信息,对出错的地方快速定位
naughty610 2010-02-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 inkfish 的回复:]
引用 1 楼 naughty610 的回复:
我的文件就放在工程的目录下的


强烈怀疑放置路径问题。解决方法:
1.把ChineseDictionary.dat文件备份,然后删掉
2.运行下述代码:
Java code
File file=new File("ChineseDictionary.dat");
file.createNewFile();
3.查找新生成的ChineseDictionary.dat文件在哪个路径下。
[/Quote]您好。我用了您说的方法,新生成的文件就跟我说的那个文件放在同一个文件夹下的。郁闷了。。。
naughty610 2010-02-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zhangmicky 的回复:]
楼主如果是用eclipse的话,这个文件应该放在项目目录下,不是bin或者src目录。我正在用这个,刚试了试没问题的。 -- 不过楼主已经说了

如果楼主是用命令行的话,这个文件应该和.java放在一起

另外,为啥不用FileNotFoundException来处理?
[/Quote]您好。我不懂您说的FileNotFoundException是怎么回事。我是初学的。用这个应该怎么处理呢?谢谢您的答复。
jocelynsuebb 2010-02-05
  • 打赏
  • 举报
回复
路径问题! 改成 src/包名...
zhangmicky 2010-02-05
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 crazylaa 的回复:]
File file = new File("ChineseDictionary.dat");
下面把file的getAbsolutePath()打出拉看看是什么就扔那里去,(单词可能拼错了,用IDE多了的下场
[/Quote]

楼主在9楼已经说过,那个文件就应该在项目文件夹的。我也用eclipse验证过了。我觉得问题出在别处。

比如,我不太明白楼主那个dic初始化的代码。另外,你到底用的什么开发环境?

我建议楼主把变量名改一下,这样
File dicFile = new File("ChineseDictionary.dat");
System.out.println("文件存在么?");
System.out.println(dicFile.exists());

再打印不出 true ,楼主就去跳楼吧。

另,多谢10楼帮我贴exception的代码了。不过我又想了一下,可能在这里用不上。
crazylaa 2010-02-05
  • 打赏
  • 举报
回复
File file = new File("ChineseDictionary.dat");
下面把file的getAbsolutePath()打出拉看看是什么就扔那里去,(单词可能拼错了,用IDE多了的下场
care365 2010-02-04
  • 打赏
  • 举报
回复
你用绝对地址试试
zhangmicky 2010-02-04
  • 打赏
  • 举报
回复
楼主如果是用eclipse的话,这个文件应该放在项目目录下,不是bin或者src目录。我正在用这个,刚试了试没问题的。 -- 不过楼主已经说了

如果楼主是用命令行的话,这个文件应该和.java放在一起

另外,为啥不用FileNotFoundException来处理?
墨水鱼 2010-02-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 naughty610 的回复:]
我的文件就放在工程的目录下的
[/Quote]

强烈怀疑放置路径问题。解决方法:
1.把ChineseDictionary.dat文件备份,然后删掉
2.运行下述代码:

File file = new File("ChineseDictionary.dat");
file.createNewFile();

3.查找新生成的ChineseDictionary.dat文件在哪个路径下。
txspace 2010-02-04
  • 打赏
  • 举报
回复

File file = new File(URLDecoder.decode(Main.class.getResource("").getPath(), "UTF-8")+"ChineseDictionary.dat");
换成这样看看
naughty610 2010-02-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 txspace 的回复:]
如果这样的话,好像要放在和main在一起。。
[/Quote]main下面我也放了一份,试过了还是不行。。。。郁闷了。

还有没有高人阿。。。。
txspace 2010-02-04
  • 打赏
  • 举报
回复
如果这样的话,好像要放在和main在一起。。
naughty610 2010-02-04
  • 打赏
  • 举报
回复
我的文件就放在工程的目录下的

62,636

社区成员

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

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