黑马程序员技术交流社区

标题: File 类 小问题。 [打印本页]

作者: 、__WSD吴少东    时间: 2013-4-22 09:58
标题: File 类 小问题。
本帖最后由 、__WSD吴少东 于 2013-4-22 11:55 编辑

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

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

返回数据类型不同,最后会有什么区别,麻烦详细点,谢谢大神了。
作者: 、__WSD吴少东    时间: 2013-4-22 10:02
是不是说,File类型的,直接就可以调用啊,相当于是,  File f1 = new File(s1);   这样子?
不知道我这样理解对不对呃!   
作者: 袁梦希    时间: 2013-4-22 10:18
本帖最后由 袁梦希 于 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. }
复制代码

作者: 郭登旭    时间: 2013-4-22 10:22
只是返回值类型不同
String s1 = file.getAbsolutePath();   返回绝对路径的字符串表现形式
File f1 = file.getAbsoluteFile();    返回绝对路径的File类型,相当于 File f1=new File(s1);
作者: 孟群峰    时间: 2013-4-22 10:32
主要搞清file对象是什么就可以了。
File f1 = file.getAbsoluteFile();
String s1 = file.getAbsolutePath();
如果仅仅只想得到文件的绝对路径名,第二种就够用了。可是如果想进一步操作你封装的文件就要使用第一种了,(第一种比较常用,功能强大!)
第一种获得一个file对象,它不仅仅可以获得文件的绝对路径名(f1.getAbsolutePath()),还可以用获得文件的长度(f1.length()),,等等。。。很多和文件相关的属性
懂了吗?
作者: 郭军亮    时间: 2013-4-22 11:24
File f1 = file.getAbsoluteFile();
String s1 = file.getAbsolutePath();
我觉得File f1 = file.getAbsoluteFile()得到的是一个文件对象,而String s1 = file.getAbsolutePath();得到的是一个字符串,他俩本不属于一个类的,在执行的其他方法上肯定是不一样的,但是打印s1和f1一样,是因为s1是路径名没问题,f1打印的是这个对象的全程名吧我觉得.
作者: 胡帅冰    时间: 2013-4-22 11:40

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


作者: 、__WSD吴少东    时间: 2013-4-22 11:53
孟群峰 发表于 2013-4-22 10:32
主要搞清file对象是什么就可以了。
File f1 = file.getAbsoluteFile();
String s1 = file.getAbsolutePath( ...

还是你了解我说的是什么意思啊。。谢谢你,  
作者: 、__WSD吴少东    时间: 2013-4-22 11:54
胡帅冰 发表于 2013-4-22 11:40
File f1 = file.getAbsoluteFile();
String s1 = file.getAbsolutePath();
根据查阅文档显示:这两个方法 ...

大概意思知道了。谢谢你啊。TT




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2