简单的语言来说一下,什么时候使用getAbsoluteFile(),什么时候使用getAbsolutePath()?能不能举个例子?

解决方案 »

  1.   

    看名字就知道了 一个拿到是file
    一个拿到是path 路径
      

  2.   

    getAbsoluteFile()返回的是一个File类对象,这个File对象表示是当前File对象的绝对路径名形式
    getAbsolutePath()返回的是一个字符串,这个字符串就是当前File对象的绝对路径名的字符串形式
      

  3.   

    import java.io.File;
    public class Scanner {
        public static void main(String[] args) {
    File file = new File("a.txt");
    File f = file.getAbsoluteFile();
    String str = file.getAbsolutePath();
    System.out.println(f.getClass());
    System.out.println(str.getClass());
    System.out.println(f);//这里println方法自动调用了f.toString(),所以和下面一样
    System.out.println(str);
    }
    }结果 
    class java.io.File
    class java.lang.String
    D:\Java\workspace\csdn\a.txt
    D:\Java\workspace\csdn\a.txt
      

  4.   

    我是看到别人的代码中有一段
    phoneFile = new File(Environment.getExternalStorageDirectory() .getAbsoluteFile() + "/" + getTime() + ".jpg");这里他用的是getAbsoluteFile(),我不明白为什么不是使用的
    getAbsolutePath()这个,我就弄不清楚什么时候用哪个了
      

  5.   

    1、先看调用的是什么,这里调用的是File类的构造器
    2、看括号里的参数类型,判断调用的是哪个构造器
    你看new File(Environment.getExternalStorageDirectory() .getAbsoluteFile() + "/" + getTime() + ".jpg")
    +作为字符串连接符,Environment.getExternalStorageDirectory() .getAbsoluteFile()虽然返回的是一个File对象,但会自动调用toString()方法转换为字符串,最后拼接一个字符串传给构造器。
      

  6.   

    1、先看调用的是什么,这里调用的是File类的构造器
    2、看括号里的参数类型,判断调用的是哪个构造器
    你看new File(Environment.getExternalStorageDirectory() .getAbsoluteFile() + "/" + getTime() + ".jpg")
    +作为字符串连接符,Environment.getExternalStorageDirectory() .getAbsoluteFile()虽然返回的是一个File对象,但会自动调用toString()方法转换为字符串,最后拼接一个字符串传给构造器。
    楼上正解
      

  7.   

    1、先看调用的是什么,这里调用的是File类的构造器
    2、看括号里的参数类型,判断调用的是哪个构造器
    你看new File(Environment.getExternalStorageDirectory() .getAbsoluteFile() + "/" + getTime() + ".jpg")
    +作为字符串连接符,Environment.getExternalStorageDirectory() .getAbsoluteFile()虽然返回的是一个File对象,但会自动调用toString()方法转换为字符串,最后拼接一个字符串传给构造器。
    看了大家的回答,我可能得出这样的结论,当getAbsoluteFile() 单独出现的时候,得到的是一个对象。而当与比如字符串连接这样的时候,就和getAbsolutePath()这个方法一样的作用了。
      

  8.   

    1、先看调用的是什么,这里调用的是File类的构造器
    2、看括号里的参数类型,判断调用的是哪个构造器
    你看new File(Environment.getExternalStorageDirectory() .getAbsoluteFile() + "/" + getTime() + ".jpg")
    +作为字符串连接符,Environment.getExternalStorageDirectory() .getAbsoluteFile()虽然返回的是一个File对象,但会自动调用toString()方法转换为字符串,最后拼接一个字符串传给构造器。
    看了大家的回答,我可能得出这样的结论,当getAbsoluteFile() 单独出现的时候,得到的是一个对象。而当与比如字符串连接这样的时候,就和getAbsolutePath()这个方法一样的作用了。
    这样理解虽然不错,但是总觉得你没抓住重点
    对于File对象的getAbsoluteFile()和getAbsolutePath()方法表达的意思是一样的,只不过一个方法返回值是File类型,令一个是String类型,就像5楼说的,看你怎么用,你想得到一个File对象你就用getAbsoluteFile(),你想得到一个字符串你就用getAbsolutePath()。
      

  9.   

    楼上大神激烈的讨论,小弟学习了,收获不少。getAbsluteFile()和getAbsolutePath()。
      

  10.   

    大家说的都不错,不过我不明白为什么要使用file.getAbsluteFile(); 使用这个方法前提不就是已经获得了file对象了吗,为什么还要特意写个方法获取file对象;
      

  11.   

    1、先看调用的是什么,这里调用的是File类的构造器
    2、看括号里的参数类型,判断调用的是哪个构造器
    你看new File(Environment.getExternalStorageDirectory() .getAbsoluteFile() + "/" + getTime() + ".jpg")
    +作为字符串连接符,Environment.getExternalStorageDirectory() .getAbsoluteFile()虽然返回的是一个File对象,但会自动调用toString()方法转换为字符串,最后拼接一个字符串传给构造器。
    看了大家的回答,我可能得出这样的结论,当getAbsoluteFile() 单独出现的时候,得到的是一个对象。而当与比如字符串连接这样的时候,就和getAbsolutePath()这个方法一样的作用了。
    这样理解虽然不错,但是总觉得你没抓住重点
    对于File对象的getAbsoluteFile()和getAbsolutePath()方法表达的意思是一样的,只不过一个方法返回值是File类型,令一个是String类型,就像5楼说的,看你怎么用,你想得到一个File对象你就用getAbsoluteFile(),你想得到一个字符串你就用getAbsolutePath()。
    谢谢各位大神的解惑!学习了