Java File类的概述及常用方法使用详解

yizhihongxing

Java File类的概述及常用方法使用详解

File类的简介

在Java程序中,File类是用来操作文件和目录的一种标准化方法,它提供了一系列方法用来获取文件或目录的信息,以及对它们进行读写操作。File类提供了很多的方法来操作文件和目录,能够满足大多数文件和目录的基本操作需求。

File类的常用方法

File类提供了很多方法,但常用的方法主要有以下几个:

构造方法

File类的构造方法有以下几种,分别用于创建不同类型的文件和目录:

  • File(String pathname):使用指定的路径名字符串创建一个File对象,可以是相对路径或绝对路径。
  • File(String parent,String child):使用指定的父路径字符串和子路径字符串创建一个新的File对象。
  • File(File parent, String child):使用指定的父抽象路径名和子路径名字符串创建一个新的File对象。
  • File(URI uri):通过将给定的 file: URI 转换为一个抽象路径名来创建一个File对象。

例如:

File file = new File("test.txt"); // 相对路径
File dir = new File("d:/test/"); // 绝对路径

// File对象还可以使用URI创建,例如:
URI uri = new URI("file://d:/test/test.txt");
File file = new File(uri);

获取信息

  • exists():判断所指定的文件或目录是否存在。
  • isFile():判断File对象所指定的是否是一个文件。
  • isDirectory():判断File对象所指定的是否是一个目录。
  • length():获取当前文件的大小,单位为字节(byte)。
  • lastModified():获取当前文件的最后修改时间,以毫秒为单位。

例如:

File file = new File("test.txt");
if(file.exists()){
    if(file.isFile()){
        System.out.println(file.getName() + "是一个文件,大小为:" + file.length() + "字节");
    }else{
        System.out.println(file.getName() + "是一个目录");
    }
}else{
    System.out.println("文件不存在");
}

文件操作

  • createNewFile():创建一个新的空文件,如果文件已经存在,则不创建。如果是创建多级目录下的新文件,应该先创建目录。
  • delete():删除所指定的文件或目录。如果File对象所指定的是目录,那么目录里面不能有文件或子目录,否则删除失败。
  • renameTo(File dest):将当前File对象所代表的文件或目录更名为dest所代表的文件或目录。

例如:

File file = new File("test.txt");
if(!file.exists()){
    file.createNewFile();
    System.out.println("创建文件:" + file.getName() + "成功");
}else{
    System.out.println("文件已经存在");
}

File dir = new File("d:/test");
dir.mkdir(); // 创建目录

file.delete(); // 删除文件

file.renameTo(new File("test1.txt")); // 更名

目录操作

  • list():列出当前目录下的所有文件和子目录的名称,返回一个字符串数组。
  • listFiles():列出当前目录下的所有文件和子目录的File对象,返回一个File数组。
  • mkdir():创建一个新目录,只有在不存在时才会创建。
  • mkdirs():创建一个多层目录树,只有在不存在时才会创建。

例如:

File dir = new File("d:/test");
File[] files = dir.listFiles(); // 获取目录下的文件和目录

String[] filenames = dir.list(); // 获取目录下的文件和目录的名称

dir.mkdir(); // 创建单层目录

dir.mkdirs(); // 创建多层目录

示例

示例一:读取文件内容

以下代码可以读取一个文件的内容:

public String readFile(String fileName) {
    File file = new File(fileName);
    StringBuilder sb = new StringBuilder();
    try{
        BufferedReader br = new BufferedReader(new FileReader(file));
        String line = null;
        while ((line = br.readLine())!=null){
            sb.append(line + "\n");
        }
        br.close();
    }catch(Exception e){
        e.printStackTrace();
    }
    return sb.toString();
}
  • 首先,使用File类的构造方法生成一个文件对象file
  • 然后,通过BufferedReader读取文件内容,并把读取到的每一行拼接在一起,最终返回一个字符串。

示例二:复制文件

以下代码可以将一个文件复制到指定目录下:

public boolean copyFile(String source, String target) {
    File sourceFile = new File(source);
    File targetFile = new File(target);

    FileInputStream inStream = null;
    FileOutputStream outStream = null;
    try {
        inStream = new FileInputStream(sourceFile);
        outStream = new FileOutputStream(targetFile);
        byte[] buffer = new byte[1024];
        int length;
        while ((length = inStream.read(buffer)) > 0) {
            outStream.write(buffer, 0, length);
        }
    } catch (IOException e) {
        e.printStackTrace();
        return false;
    } finally {
        try {
            inStream.close();
            outStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return true;
}
  • 首先,使用File类的构造方法生成源文件对象sourceFile和目标文件对象targetFile
  • 然后,使用FileInputStream读取源文件,使用FileOutputStream写入目标文件。

以上就是Java File类的概述及常用方法使用详解,我们可以根据具体需求灵活使用File类的各种方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java File类的概述及常用方法使用详解 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Spring Boot如何使用Spring Security进行安全控制

    关于“Spring Boot如何使用Spring Security进行安全控制”的攻略,我们需要先明确以下几点: Spring Boot集成了Spring Security,只需要在pom.xml中引入Spring Security的依赖即可。 Spring Security可以配置多种安全验证方式,比如基于表单的验证、HTTP基本身份验证、OAuth2等。…

    Java 2023年5月20日
    00
  • Java多线程之锁的强化学习

    Java多线程之锁的强化学习 在多线程编程中,锁是一种常用的同步机制。通过锁,我们可以保证多个线程互斥地访问共享资源,从而避免数据不一致或者并发竞争导致的错误。 本文将介绍Java中锁的使用方法及优化技巧,帮助读者快速掌握多线程编程中应用锁的技能。 概述 Java中提供了多种锁的实现方式,包括synchronized关键字、ReentrantLock类、Re…

    Java 2023年5月19日
    00
  • Java中线程组ThreadGroup与线程池的区别及示例

    Java中线程池与线程组ThreadGroup的区别及示例 线程池 线程池是一种线程的管理机制,它可以重用已经创建的线程,避免重复创建、销毁线程的开销,提高系统的效率。Java中通过java.util.concurrent.Executor提供了线程池的支持,并且线程池中的线程是由线程池自行管理的,开发者无需感知线程的创建、销毁等底层结构。 线程池的使用流程…

    Java 2023年5月30日
    00
  • SpringBoot2零基础到精通之配置文件与web开发

    配置文件 Spring Boot 项目中的配置文件一般有 application.properties 和 application.yml 两种,它们用于对应不同的属性配置和格式化方式,常见的属性配置包括数据库连接、端口号、日志级别等。其中,application.yml 文件的格式化方式相对更灵活,可以嵌套、缩进和列表项等等。 下面以 MySQL 数据库连…

    Java 2023年5月15日
    00
  • Java String.format()的用法

    下面我就为大家详细讲解一下“Java String.format()的用法”。 什么是String.format()? String类是Java中最常用的类之一,用于表示和操作字符串。String.format()是String类中的一个静态方法,用于将字符串格式化为特定的格式。 String.format()的语法 String.format()的一般语法…

    Java 2023年5月26日
    00
  • Java读取一行空格隔开的数字字符串并求出这些数字的和方法

    要读取一行空格隔开的数字字符串,并求出这些数字的和,可以按照以下步骤进行: 1. 读取字符串 首先,需要获取用户输入的字符串。可以使用Scanner类来读取用户输入: Scanner scanner = new Scanner(System.in); // 创建Scanner对象 String numsStr = scanner.nextLine(); //…

    Java 2023年5月27日
    00
  • Data Source与数据库连接池简介(JDBC简介)

    Data Source与数据库连接池简介 什么是Data Source? 在Java中,使用JDBC进行数据库操作时需要通过连接参数来获取数据库连接,而数据连接参数的获取和管理将会非常复杂。于是,为了解决这个问题,Java2引入了一种新的数据源管理机制:Data Source。 Data Source指的是一个应用程序和一个JDBC驱动程序之间的接口。在Ja…

    Java 2023年5月20日
    00
  • 关于RestTemplate的使用深度解析

    关于RestTemplate的使用深度解析 RestTemplate是一个常用的HTTP客户端,它提供了简单的API,可以用来发送HTTP请求并获取响应结果。RestTemplate的使用非常广泛,可以用来调用RESTful API,发送表单数据,获取JSON数据等等。在本篇攻略中,我们将深入探讨RestTemplate的使用。 1. RestTemplat…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部