上一篇:深入了解File类,勘破文件操作 | 带你学《Java语言高级特性》之四十七
前几节中我们了解了如何进行文件级的相关操作,现在让我们走进文件,借助File类提供的其他方法,了解文件的内部信息吧。
【本节目标】
通过阅读本节内容,你将结合具体代码,实操File类的各种获取文件信息的方法,了解可以通过File类获取到哪些信息,初步掌握文件内部信息的获取方式。
获取文件信息
除了可以进行文件的操作之外,也可以通过File类来获取一些文件本身提供的信息,可以获取如下内容:
- 文件是否可读:public boolean canRead();
- 文件是否可写:public boolean canWrite();
- 获取文件长度:public long length(),该方法返回的是long数据类型,字节长度;
- 最后一次修改日期时间:public long lastModified();
- 判读是否是目录:public boolean isDirectory();
- 判断是否是文件:public boolean isFile();
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
class MathUtil {
private MathUtil() {}
public static double round(double num, int scale) {
return Math.round(Math.pow(10, scale) * num) / Math.pow(10, scale);
}
}
public class JavaAPIDemo {
public static void main(String[] args) {
File file = new File("d:"+ File.separator + "my.jpg");
System.out.println("文件是否可读:" + file.canRead()); //true
System.out.println("文件是否可写:" + file.canWrite()); //true
System.out.println("文件大小:" + MathUtil.round(file.length() / (double) 1024 / 1024,2)); //文件大小:16.16
System.out.println("最后的修改时间:"+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(file.lastModified())));
System.out.println("是目录吗?"+file.isDirectory()); //false
System.out.println("是文件吗?"+file.isFile()); //true
}
}
既然可以判断给定的路径是文件还是目录,那么就可以进一步的判断,如果发现是目录,则应该列出目录中的全部内容。
- 列出目录内容:public File[] listFiles();
import java.io.File;
public class JavaAPIDemo {
public static void main(String[] args){
File file = new File("d:"+ File.separator);
if(file.isDirectory()){ //当前是一个目录
File result []=file.listFiles(); //列出目录中的全部内容
for (int x = 0 ;x < result.length; x ++){
System.out.println(result[x]);
}
}
}
}
这些信息的获得都是文件或目录本身的操作,都不涉及到文件内容的处理。
想学习更多的Java的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学
下一篇:教你使用File类列出目录所有文件 | 带你学《Java语言高级特性》之四十九
更多Java面向对象编程文章查看此处