A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Inspur 中级黑马   /  2013-9-16 11:46  /  1600 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Inspur 于 2013-9-20 10:57 编辑

大家都知道,InputStream in = new FileInputStream("file.txt");只要将file.txt和该类的字节码文件放在同一个目录下面就行,也就是相对路径,但是我的myeclipse里面这样写
InputStream in = null;                try {
                        in = new FileInputStream("file.txt");
                      }
怎么老是提示我指定的文件找不到啊?我将代码用javac编译可以运行,为什么在myeclipse里面不行,请大家帮忙看看,谢谢



评分

参与人数 1技术分 +1 收起 理由
张智文 + 1

查看全部评分

2 个回复

倒序浏览
这是一个关于文件路径的问题:
1.尽量不要使用相对于System.getProperty("user.dir")当前用户目录的相对路径。这是一颗定时炸弹,随时可能要你的命。

  2.尽量使用URI形式的绝对路径资源。它可以很容易的转变为URI,URL,File对象。

  3.尽量使用相对classpath的相对路径。不要使用绝对路径。使用上面ClassLoaderUtil类的public static URL getExtendResource(String relativePath)方法已经能够使用相对于classpath的相对路径定位所有位置的资源。

  4.绝对不要使用硬编码的绝对路径(D:\\***)。因为,我们完全可以使用ClassLoader类的getResource("")方法得到当前classpath的绝对路径。
使用硬编码的绝对路径是完全没有必要的!它一定会让你死的很难看!程序将无法移植!

  如果你一定要指定一个绝对路径,那么使用配置文件,也比硬编码要好得多!

  当然,我还是推荐你使用程序得到classpath的绝对路径来拼资源的绝对路径!


希望对你有帮助!

评分

参与人数 1技术分 +1 收起 理由
张智文 + 1

查看全部评分

回复 使用道具 举报 1 0
楼上的哥们写得很详细,找不到文件,是因为你要读取的文件目录放错位置了,在Myeclipse中你应该把文件放在项目的根目录下面,不要放在包里面,这个方法只解决你当前的问题,今后的开发请借鉴楼上兄弟提供的方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马