借助File类了解文件的内在美 | 带你学《Java语言高级特性》之四十八

简介: 前几节中我们了解了如何进行文件级的相关操作,现在让我们走进文件,借助File类提供的其他方法,了解文件的内部信息吧。

上一篇:深入了解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面向对象编程文章查看此处

相关文章
|
16天前
|
安全 Java 数据建模
Java记录类:简化数据载体的新选择
Java记录类:简化数据载体的新选择
167 101
|
16天前
|
安全 Java 开发者
Java记录类:简化数据载体的新方式
Java记录类:简化数据载体的新方式
193 100
|
2月前
|
缓存 安全 Java
Java反射机制:动态操作类与对象
Java反射机制是运行时动态操作类与对象的强大工具,支持获取类信息、动态创建实例、调用方法、访问字段等。它在框架开发、依赖注入、动态代理等方面有广泛应用,但也存在性能开销和安全风险。本文详解反射核心API、实战案例及性能优化策略,助你掌握Java动态编程精髓。
|
2月前
|
存储 安全 Java
Java集合框架(一):List接口及其实现类剖析
本文深入解析Java中List集合的实现原理,涵盖ArrayList的动态数组机制、LinkedList的链表结构、Vector与Stack的线程安全性及其不推荐使用的原因,对比了不同实现的性能与适用场景,帮助开发者根据实际需求选择合适的List实现。
|
存储 Java 编译器
Java语言------图书馆管理系统(入门简略版)
Java语言------图书馆管理系统(入门简略版)
234 0
Java语言------图书馆管理系统(入门简略版)
|
Java
Java学习路线-53:EL(表达式语言)入门及 EL 函数库
Java学习路线-53:EL(表达式语言)入门及 EL 函数库
163 0
|
JavaScript 前端开发 Java
java语言入门总结
java语言入门总结
192 0
|
设计模式 Java 关系型数据库
java语言学习路线目录,从入门到资深工程师要掌握的技术
1.JAVA知识基础 1.1JAVA基础 推荐书籍:编程思想 1.掌握java常用技术,io、多线程、反射、常用集合框架 2.对处理输入输出的IO进行熟悉,用于笔试
190 0
|
小程序 安全 前端开发
【Java编程进阶】Java语言基础入门篇
整个Java全栈编程知识体系十分庞大,包括JavaSE知识,Web前端,Web后端,数据库相关的知识等,初学者应该系统踏实的学习,一步一个脚印。Java语言是一种完全面向对象的跨平台语言。有很多突出的优点,例如简单易学,面向对象,分布式,安全可靠,解释型语言,跨平台运行,可移植高性能多线程,可实现网络编程等。
303 0
【Java编程进阶】Java语言基础入门篇
Java学习路线-53:EL(表达式语言)入门及 EL 函数库
Java学习路线-53:EL(表达式语言)入门及 EL 函数库
121 0