接着来学习Java中的File类的方法,这篇来学习获取功能,也就是API文档中看到的getxxx方法。主要有获取绝对路径,获取路径,获取名称,获取长度,字节数,获取最后一次修改时间,毫秒值,获取指定路径下所有文件或者文件夹的名称的数组,获取指定路径下文件或文件夹的File数组。
1.获取绝对路径
在Eclipse项目的根目录下创建一个abc.txt和aaa文件夹,下面演示abc.txt和aaa文件夹的在磁盘的绝对路径,绝对路径就是从盘符开始的路径。
package file;
import java.io.File;
public class Demo1_File {
public static void main(String[] args) {
File file1 = new File("abc.txt");
//获取文件的绝对路径
System.out.println(file1.getAbsolutePath());
File dir1 = new File("aaa");
System.out.println(dir1.getAbsolutePath());
}
}
运行效果:
C:\Users\Administrator\workspace\JavaDemo\abc.txt
C:\Users\Administrator\workspace\JavaDemo\aaa
2.获取路径
和上面获取绝对路径对比,其实getPath()方法默认输出是文件的相对路径。
package file;
import java.io.File;
public class Demo1_File {
public static void main(String[] args) {
File file1 = new File("abc.txt");
//获取文件的路径
System.out.println(file1.getPath());
File dir1 = new File("aaa");
System.out.println(dir1.getPath());
}
}
运行之后输出:
abc.txt
aaa
3.获取名称 getName()
这个就是拿到文件或文件夹的名称
package file;
import java.io.File;
public class Demo1_File {
public static void main(String[] args) {
File file1 = new File("abc.txt");
//获取文件的路径
System.out.println(file1.getName());
File dir1 = new File("aaa");
System.out.println(dir1.getName());
}
}
运行:
abc.txt
aaa
4.获取字节长度(个数)
这个我们在abc.txt写点内容,这个获取长度就统计里面字符的个数。
package file;
import java.io.File;
public class Demo1_File {
public static void main(String[] args) {
File file1 = new File("abc.txt");
//获取文件的路径
System.out.println(file1.length());
}
}
我这边打印出7个,就是abc.txt 随便写了几个英文字母。
5.获取最后一次修改时间
可以获取文件夹或者文件的最后一次修改时间。
package file;
import java.io.File;
public class Demo1_File {
public static void main(String[] args) {
File file1 = new File("abc.txt");
//获取文件的最后一次修改时间
System.out.println(file1.lastModified());
File dir = new File("aaa");
System.out.println(dir.lastModified());
}
}
运行,打印的是一个从1970年1月1号0时0分0秒到文件修改的时间的毫秒值。
1530977356336
1530805106868
如果想把这个修改时间换成格式化,我们可以利用Date类的方法去实现。后多后台系统,我们可以看到,文件的最后一次修改时间就是这么得到的。
6.获取指定路径下文件的名称数组
例如我想获取我C盘Program File这层下文件和文件夹的名称的数组。
package file;
import java.io.File;
public class Demo1_File {
public static void main(String[] args) {
File file1 = new File("C:\\Program Files");
String[] arr = file1.list();
for (String string : arr) {
System.out.println(string);
}
}
}
运行打印出来,是你自己C盘下Program Files下文件夹的名称。
7.获取指定路径下文件对象
这个和上面获取指定路径下的文件名称数组不一样,这个是获取文件对象数组。
package file;
import java.io.File;
public class Demo1_File {
public static void main(String[] args) {
File file1 = new File("C:\\Program Files");
File[] files = file1.listFiles();
for (File file : files) {
System.out.println(file);
}
}
}
运行之后,打印出了文件的绝对路径。其实我们是获取的没一个File对象,上面刚刚File类重写了toString方法,所以默认打印文件的绝对路径,当然我们可以拿到文件对象之后做一些其他事情,例如判断文件是否文件还是文件夹,文件大小等。