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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 、__WSD吴少东 中级黑马   /  2013-4-22 09:58  /  2020 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 、__WSD吴少东 于 2013-4-22 11:55 编辑

File f1 = file.getAbsoluteFile();
String s1 = file.getAbsolutePath();

我测试了一下,这两个的结果是一样的,就是返回的数据类型不同,我就是想知道下,

返回数据类型不同,最后会有什么区别,麻烦详细点,谢谢大神了。

8 个回复

正序浏览
胡帅冰 发表于 2013-4-22 11:40
File f1 = file.getAbsoluteFile();
String s1 = file.getAbsolutePath();
根据查阅文档显示:这两个方法 ...

大概意思知道了。谢谢你啊。TT
回复 使用道具 举报
孟群峰 发表于 2013-4-22 10:32
主要搞清file对象是什么就可以了。
File f1 = file.getAbsoluteFile();
String s1 = file.getAbsolutePath( ...

还是你了解我说的是什么意思啊。。谢谢你,  
回复 使用道具 举报

File f1 = file.getAbsoluteFile();
String s1 = file.getAbsolutePath();
根据查阅文档显示:这两个方法返回的都是返回此抽象路径名的绝对路径名。只是第一个返回的是File类型,一个是String类型的。
这样的不同的两个数据类型,是为了方便在编程的时候使用,返回File类型的,在编程的时候,需要使用这个路径名的时候直接传入f1就可以了,不用再转换。
返回String类型的,是为了方便打印输出。

点评

你的头像是杰士邦吧 0.o  发表于 2013-4-22 11:54
回复 使用道具 举报
File f1 = file.getAbsoluteFile();
String s1 = file.getAbsolutePath();
我觉得File f1 = file.getAbsoluteFile()得到的是一个文件对象,而String s1 = file.getAbsolutePath();得到的是一个字符串,他俩本不属于一个类的,在执行的其他方法上肯定是不一样的,但是打印s1和f1一样,是因为s1是路径名没问题,f1打印的是这个对象的全程名吧我觉得.
回复 使用道具 举报
主要搞清file对象是什么就可以了。
File f1 = file.getAbsoluteFile();
String s1 = file.getAbsolutePath();
如果仅仅只想得到文件的绝对路径名,第二种就够用了。可是如果想进一步操作你封装的文件就要使用第一种了,(第一种比较常用,功能强大!)
第一种获得一个file对象,它不仅仅可以获得文件的绝对路径名(f1.getAbsolutePath()),还可以用获得文件的长度(f1.length()),,等等。。。很多和文件相关的属性
懂了吗?
回复 使用道具 举报
只是返回值类型不同
String s1 = file.getAbsolutePath();   返回绝对路径的字符串表现形式
File f1 = file.getAbsoluteFile();    返回绝对路径的File类型,相当于 File f1=new File(s1);
回复 使用道具 举报
本帖最后由 袁梦希 于 2013-4-22 10:31 编辑

楼主你好。
其实这个问题不难,因为你这两行代码都是用file变量调用的,返回类型可以有很多种,
这么多返回类型,都要有一个对应类型对象去引用它,
如果被File类引用,就会拿f1去执行相应的File类中成员的操作。
如果被String类引用,就会拿s1执行String类里面相应的属性和方法。
(用eclipse 就可以测试  打上f1.  方法都是File类里面的       s1.  方法都是String类里面的  )

  1. public static void main(String[] args) {

  2. File file = new File("F:\\sdfsd\\新建 文本文档 (2).txt");//这里可以传任意的绝对路径或相对路径

  3. File f1 = file.getAbsoluteFile();                   //对getAbsoluteFile();返回值的引用
  4. String s1 = file.getAbsolutePath();            //对getAbsolutePath();  返回值的引用

  5. System.out.println(f1);
  6. System.out.println(s1);


  7. }
复制代码
回复 使用道具 举报
是不是说,File类型的,直接就可以调用啊,相当于是,  File f1 = new File(s1);   这样子?
不知道我这样理解对不对呃!   
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马