我们下面通过一段代码来看 File 类的核心函数:
public class TestFile {
public static void main(String[] args) {
String path = "C:/windows/"; // 指定文件所在的目录(可以绝对路径,也可以相对路径)
File f = new File(path, "notepad.exe"); // 建立File变量,并设定由f变量引用
System.out.println("C:\\windows\\notepad.exe文件信息如下:");
System.out.println("============================================");
System.out.println("文件长度:" + f.length() + "字节");
System.out.println("文件或者目录:" + (f.isFile() ? "是文件" : "不是文件"));
System.out.println("文件或者目录:" + (f.isDirectory() ? "是目录" : "不是目录"));
System.out.println("是否可读:" + (f.canRead() ? "可读取" : "不可读取"));
System.out.println("是否可写:" + (f.canWrite() ? "可写入" : "不可写入"));
System.out.println("是否隐藏:" + (f.isHidden() ? "是隐藏文件" : "不是隐藏文件"));
System.out.println("最后修改日期:" + new Date(f.lastModified()));
System.out.println("文件名称:" + f.getName());
System.out.println("文件路径:" + f.getPath());
System.out.println("绝对路径:" + f.getAbsolutePath());
}
}
下面,我们结合路径速记符,再来对比一下获取路径的几个函数:
PS:“." 就表示当前的文件夹,而 ”…“ 则表示当前文件夹的上一级文件夹,“/” 表示根目录
- getCanonicalPath():返回绝对路径,根据 ”.”、“…” 返回指定文件夹的绝对路径
- getAbsolutePath():返回绝对路径,无视 ”.”、“…”,返回当前文件绝对路径 + new File() 时设定的路径
- getPath():返回 new File() 时设定的路径
来看个实例(项目路径是 C:\Users\13275\Documents\Java\test)
File directory = new File("abc");
directory.getCanonicalPath(); // C:\Users\13275\Documents\Java\test\abc
directory.getAbsolutePath(); // C:\Users\13275\Documents\Java\test\abc
direcotry.getPath(); // abc
File directory = new File(".");
directory.getCanonicalPath(); // C:\Users\13275\Documents\Java\test\
directory.getAbsolutePath(); // C:\Users\13275\Documents\Java\test\.
direcotry.getPath(); // .
File directory = new File("..");
directory.getCanonicalPath(); // C:\Users\13275\Documents\Java
directory.getAbsolutePath(); // C:\Users\13275\Documents\Java\test\..
direcotry.getPath(); // ..
问题:如何通过 File 获取当前项目的绝对路径(当前项目路径是 /C:/users/13275/Java/test)?
可以这么做:
File directory = new File(""); // 设定为当前文件夹
System.out.println(directory.getAbsolutePath()); // C:\Users\13275\Documents\Java\test
本文标题:【Java杂记】文件操作:File 类核心 API 及特殊示例
本文链接:https://blog.quwenai.cn/post/10214.html
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。






还没有评论,来说两句吧...