Java的File类中getAbsoluteFile()与getAbsolutePath()这两个方法的区别到底是什么? 简单的语言来说一下,什么时候使用getAbsoluteFile(),什么时候使用getAbsolutePath()?能不能举个例子? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看名字就知道了 一个拿到是file一个拿到是path 路径 getAbsoluteFile()返回的是一个File类对象,这个File对象表示是当前File对象的绝对路径名形式getAbsolutePath()返回的是一个字符串,这个字符串就是当前File对象的绝对路径名的字符串形式 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.Fileclass java.lang.StringD:\Java\workspace\csdn\a.txtD:\Java\workspace\csdn\a.txt 我是看到别人的代码中有一段phoneFile = new File(Environment.getExternalStorageDirectory() .getAbsoluteFile() + "/" + getTime() + ".jpg");这里他用的是getAbsoluteFile(),我不明白为什么不是使用的getAbsolutePath()这个,我就弄不清楚什么时候用哪个了 1、先看调用的是什么,这里调用的是File类的构造器2、看括号里的参数类型,判断调用的是哪个构造器你看new File(Environment.getExternalStorageDirectory() .getAbsoluteFile() + "/" + getTime() + ".jpg")+作为字符串连接符,Environment.getExternalStorageDirectory() .getAbsoluteFile()虽然返回的是一个File对象,但会自动调用toString()方法转换为字符串,最后拼接一个字符串传给构造器。 1、先看调用的是什么,这里调用的是File类的构造器2、看括号里的参数类型,判断调用的是哪个构造器你看new File(Environment.getExternalStorageDirectory() .getAbsoluteFile() + "/" + getTime() + ".jpg")+作为字符串连接符,Environment.getExternalStorageDirectory() .getAbsoluteFile()虽然返回的是一个File对象,但会自动调用toString()方法转换为字符串,最后拼接一个字符串传给构造器。楼上正解 1、先看调用的是什么,这里调用的是File类的构造器2、看括号里的参数类型,判断调用的是哪个构造器你看new File(Environment.getExternalStorageDirectory() .getAbsoluteFile() + "/" + getTime() + ".jpg")+作为字符串连接符,Environment.getExternalStorageDirectory() .getAbsoluteFile()虽然返回的是一个File对象,但会自动调用toString()方法转换为字符串,最后拼接一个字符串传给构造器。看了大家的回答,我可能得出这样的结论,当getAbsoluteFile() 单独出现的时候,得到的是一个对象。而当与比如字符串连接这样的时候,就和getAbsolutePath()这个方法一样的作用了。 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()。 楼上大神激烈的讨论,小弟学习了,收获不少。getAbsluteFile()和getAbsolutePath()。 大家说的都不错,不过我不明白为什么要使用file.getAbsluteFile(); 使用这个方法前提不就是已经获得了file对象了吗,为什么还要特意写个方法获取file对象; 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()。谢谢各位大神的解惑!学习了 请各位大虾帮忙解决一个难题 IO和NIO都提到了Buffer有何区别吗? getGraphics()与new Frame构造函数的问题 Java数据库连接池的类为什么要自定写,jdk里面为什么不提供一下标准的数据库连接池的类呢? 利用POI中的HSSF向excel中写图片的问题 tomcat?tomcat? rmi的一点小问题。 reader/writer都什么时候用 紧急求助!!!哪里有Weblogic的使用手册或相关学习资料??? 关于数据表拷贝的问题 装了JDK后到底需不需要环境配置? java编程输入汉字时导致字体变绿。后面出现乱码
一个拿到是path 路径
getAbsolutePath()返回的是一个字符串,这个字符串就是当前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
phoneFile = new File(Environment.getExternalStorageDirectory() .getAbsoluteFile() + "/" + getTime() + ".jpg");这里他用的是getAbsoluteFile(),我不明白为什么不是使用的
getAbsolutePath()这个,我就弄不清楚什么时候用哪个了
2、看括号里的参数类型,判断调用的是哪个构造器
你看new File(Environment.getExternalStorageDirectory() .getAbsoluteFile() + "/" + getTime() + ".jpg")
+作为字符串连接符,Environment.getExternalStorageDirectory() .getAbsoluteFile()虽然返回的是一个File对象,但会自动调用toString()方法转换为字符串,最后拼接一个字符串传给构造器。
2、看括号里的参数类型,判断调用的是哪个构造器
你看new File(Environment.getExternalStorageDirectory() .getAbsoluteFile() + "/" + getTime() + ".jpg")
+作为字符串连接符,Environment.getExternalStorageDirectory() .getAbsoluteFile()虽然返回的是一个File对象,但会自动调用toString()方法转换为字符串,最后拼接一个字符串传给构造器。
楼上正解
2、看括号里的参数类型,判断调用的是哪个构造器
你看new File(Environment.getExternalStorageDirectory() .getAbsoluteFile() + "/" + getTime() + ".jpg")
+作为字符串连接符,Environment.getExternalStorageDirectory() .getAbsoluteFile()虽然返回的是一个File对象,但会自动调用toString()方法转换为字符串,最后拼接一个字符串传给构造器。
看了大家的回答,我可能得出这样的结论,当getAbsoluteFile() 单独出现的时候,得到的是一个对象。而当与比如字符串连接这样的时候,就和getAbsolutePath()这个方法一样的作用了。
2、看括号里的参数类型,判断调用的是哪个构造器
你看new File(Environment.getExternalStorageDirectory() .getAbsoluteFile() + "/" + getTime() + ".jpg")
+作为字符串连接符,Environment.getExternalStorageDirectory() .getAbsoluteFile()虽然返回的是一个File对象,但会自动调用toString()方法转换为字符串,最后拼接一个字符串传给构造器。
看了大家的回答,我可能得出这样的结论,当getAbsoluteFile() 单独出现的时候,得到的是一个对象。而当与比如字符串连接这样的时候,就和getAbsolutePath()这个方法一样的作用了。
这样理解虽然不错,但是总觉得你没抓住重点
对于File对象的getAbsoluteFile()和getAbsolutePath()方法表达的意思是一样的,只不过一个方法返回值是File类型,令一个是String类型,就像5楼说的,看你怎么用,你想得到一个File对象你就用getAbsoluteFile(),你想得到一个字符串你就用getAbsolutePath()。
2、看括号里的参数类型,判断调用的是哪个构造器
你看new File(Environment.getExternalStorageDirectory() .getAbsoluteFile() + "/" + getTime() + ".jpg")
+作为字符串连接符,Environment.getExternalStorageDirectory() .getAbsoluteFile()虽然返回的是一个File对象,但会自动调用toString()方法转换为字符串,最后拼接一个字符串传给构造器。
看了大家的回答,我可能得出这样的结论,当getAbsoluteFile() 单独出现的时候,得到的是一个对象。而当与比如字符串连接这样的时候,就和getAbsolutePath()这个方法一样的作用了。
这样理解虽然不错,但是总觉得你没抓住重点
对于File对象的getAbsoluteFile()和getAbsolutePath()方法表达的意思是一样的,只不过一个方法返回值是File类型,令一个是String类型,就像5楼说的,看你怎么用,你想得到一个File对象你就用getAbsoluteFile(),你想得到一个字符串你就用getAbsolutePath()。
谢谢各位大神的解惑!学习了