借助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面向对象编程文章查看此处

相关文章
|
5月前
|
Java 开发工具
【Azure Storage Account】Java Code访问Storage Account File Share的上传和下载代码示例
本文介绍如何使用Java通过azure-storage-file-share SDK实现Azure文件共享的上传下载。包含依赖引入、客户端创建及完整示例代码,助你快速集成Azure File Share功能。
446 6
|
5月前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
215 4
|
5月前
|
Java
Java语言实现字母大小写转换的方法
Java提供了多种灵活的方法来处理字符串中的字母大小写转换。根据具体需求,可以选择适合的方法来实现。在大多数情况下,使用 String类或 Character类的方法已经足够。但是,在需要更复杂的逻辑或处理非常规字符集时,可以通过字符流或手动遍历字符串来实现更精细的控制。
382 18
|
5月前
|
IDE JavaScript Java
在Java 11中,如何处理被弃用的类或接口?
在Java 11中,如何处理被弃用的类或接口?
281 5
|
5月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
269 1
|
5月前
|
Java Unix Go
【Java】(8)Stream流、文件File相关操作,IO的含义与运用
Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。!但本节讲述最基本的和流与 I/O 相关的功能。我们将通过一个个例子来学习这些功能。
243 1
|
Java
java读写file
private static String encoding = "utf-8"; public static void readTxt(String filePath) throws IOException { File file = new File(filePath); if (file.
865 0
|
5月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
287 1
|
6月前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案