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

© mengxiang1993 中级黑马   /  2015-2-17 22:32  /  1353 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. public class FileDemo_2 {

  2.         public static void main(String[] args) throws IOException {
  3.     //FileDemo_2的绝对路径为:D:\JavaProject\IO\src\day20\FileDemo_2.java
  4.                 File f = new File("ab.txt");
  5.                 f.createNewFile();
  6.                 String s1=f.getAbsolutePath();
  7.                 System.out.println(s1);
  8.                 //输出结果:D:\JavaProject\IO\ab.txt
  9.                
  10. //按照我对相对路径的理解,应该输出D:\JavaProject\IO\src\day20\ab.txt,求大神指点?
  11.         }
  12. }
复制代码


评分

参与人数 1技术分 +1 收起 理由
万合天宜 + 1 赞一个!

查看全部评分

13 个回复

倒序浏览

回帖奖励 +5

你那个是绝对路径  相对路径是getPath  相对路径输出的话应该是ab.txt  
回复 使用道具 举报
Imp_x 发表于 2015-2-17 23:00
你那个是绝对路径  相对路径是getPath  相对路径输出的话应该是ab.txt

我写的是相对路径,但我意思输出的绝对路径应该不是D:\JavaProject\IO\ab.txt
应该是和这个FileDemo_2.java这个文件在一个目录下啊
回复 使用道具 举报
本帖最后由 Imp_x 于 2015-2-19 11:16 编辑

File f = new File("ab.txt");
f.createNewFile();
这里你没指定绝对路径,所以就在相对路径下创建了文件,而相对路径就是项目的路径下
所以你文件所在的绝对路径就是项目的路径D:\JavaProject\IO,再加上你的文件名ab.txt
就是得到的绝对路径D:\JavaProject\IO\ab.txt

评分

参与人数 1技术分 +1 收起 理由
万合天宜 + 1 赞一个!

查看全部评分

回复 使用道具 举报
楼主英语没学好,把Absolute的意思理解为相对了
回复 使用道具 举报
本帖最后由 mengxiang1993 于 2015-2-19 08:37 编辑
Imp_x 发表于 2015-2-18 10:21
File f = new File("ab.txt");
f.createNewFile();
这里你没指定绝对路径,所以就在相对路径下创建了文件, ...

你看下这个文件上面还有src和day20这两个包,怎么解释?
C:\Users\lenovo\Desktop\6.jpg

6.jpg (169.48 KB, 下载次数: 19)

6.jpg
回复 使用道具 举报
rehan 中级黑马 2015-2-19 08:57:54
7#
啥分啊。。。。。。。。
回复 使用道具 举报
这种是具体路径了
回复 使用道具 举报
Imp_x 高级黑马 2015-2-19 11:15:29
9#
mengxiang1993 发表于 2015-2-19 08:35
你看下这个文件上面还有src和day20这两个包,怎么解释?

你没打开过eclipse的项目看过么:L项目的中的相对路径都是项目下的路径
回复 使用道具 举报
Imp_x 发表于 2015-2-19 11:15
你没打开过eclipse的项目看过么项目的中的相对路径都是项目下的路径

好吧,我还是觉得既然是相对路径,就要和FileDemo_2.java文件在一个目录下,输出绝对路径这样的路径:
D:\JavaProject\IO\src\day20\ab.txt 不是更容易让人理解吗?
要是输出D:\JavaProject\IO\ab.txt,我就想刨根问底
回复 使用道具 举报
Imp_x 高级黑马 2015-2-19 13:51:34
11#
mengxiang1993 发表于 2015-2-19 12:26
好吧,我还是觉得既然是相对路径,就要和FileDemo_2.java文件在一个目录下,输出绝对路径这样的路径:
D: ...

相对路径设定为项目路径下自然有它的道理,不然也不会存在这么久,按你说的改的话可能容易理解,要是改成你说的那样适合的话早就改了吧,举个简单点的例子

譬如说项目是在X盘:\***\***\pro中,里面的src包里面分别有A\AA\AAA.txt; B\BB\BBB.txt; C\CC\CCC.txt;

现在题目要求把AAA.txt、BBB.txt的内容写进去CCC.txt中的话:

一:你理解的相对路径
File1指向X盘:\***\***\pro\A\AA\AAA.txt;
File2指向X盘:\***\***\pro\B\BB\BBB.txt;

File3直接在X盘:\***\***\pro\C\CC这个相对路径中直接操作CCC.txt, 不用指定路径


二:项目下的相对路径(直接默认的就是项目所在路径,即X盘:\***\***\pro)
File1指向AAA.txt   直接写A\AA\AAA.txt
File2指向BBB.txt   B\BB\BBB.txt
File3指向CCC.txt   C\CC\CCC.txt

举这个例子大概能理解吧= =就是在你理解的基础上不断向上抽取,最后它们肯定是会在项目路径下的,所以相对路径就是项目所在路径  
回复 使用道具 举报
相对路径是不以盘符开头的,绝对路径是以盘符开头的,这样肯定是没有错的
回复 使用道具 举报
你的ab.txt文件跟你的项目文件在同一个文件夹下,
回复 使用道具 举报
楼主,那个人根本就没解释清楚,只是发现了结果是这样而已,你这个问题我也发现了,无法解决,记住结论就好了。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马