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

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 Maven 打包可执行Jar文件的实现方法

    实现Spring Boot Maven打包成可执行Jar文件的实现方法,主要有两种。 1. 使用Spring Boot Maven插件打包 首先,需要在pom.xml文件中,引入Spring Boot Maven插件,具体如下: <build> … <plugins> … <plugin> <groupId&…

    Java 2023年5月20日
    00
  • Java自动读取指定文件夹下所有文件的方法

    要实现Java自动读取指定文件夹下所有文件的功能,可以使用Java自带的File类和递归算法。File类提供了访问文件和目录的相关方法,递归算法可以依次遍历文件夹中的每一个文件。 下面是Java自动读取指定文件夹下所有文件的步骤: 1. 创建File对象,指定文件夹路径 首先需要创建一个File对象,指定要读取的文件夹路径。可以使用File类的构造函数来实现…

    Java 2023年5月20日
    00
  • JSP中正则表达式用法实例

    那么让我们来详细讲解一下“JSP中正则表达式用法实例”的完整攻略。 什么是正则表达式? 正则表达式是一种匹配字符串的模式。它可以用来搜索、编辑和处理文本。在JSP中,我们可以使用正则表达式进行数据校验和处理。 正则表达式的语法 正则表达式由普通字符(例如字符 a 到 z)和特殊字符(称为“元字符”)组成。例如,正则表达式 \d 表示一个数字,\s 表示一个空…

    Java 2023年6月15日
    00
  • Spring JPA之save方法示例详解

    让我来为你详细讲解“Spring JPA之save方法示例详解”。 什么是Spring JPA Spring JPA是Spring框架中的一个模块,它提供了基于注解和接口的方式来简化数据库访问操作,让开发者可以更便捷地进行持久化操作。 save方法简介 save方法是Spring JPA中提供的一个方法,用于将一个实体对象保存到数据库中。它有两个重载方法,分…

    Java 2023年5月20日
    00
  • JAVA实现LRU算法的参考示例

    以下是“JAVA实现LRU算法的参考示例”的完整攻略: 算法简介 LRU(Least Recently Used)算法是一种常用的缓存淘汰算法。它基于一种常见的思路:如果数据最近被访问过,那么将来访问的概率也更高。因此,LRU算法会优先淘汰最近最少使用的数据。LRU算法在缓存应用中有着广泛的应用,如数据库缓存、页面缓存等。 实现思路 在实现LRU算法时,我们…

    Java 2023年5月19日
    00
  • SpringBoot2零基础到精通之异常处理与web原生组件注入

    SpringBoot2零基础到精通之异常处理与web原生组件注入 在SpringBoot2开发中,处理异常和应用web原生组件是非常重要的技能。本攻略将帮助初学者了解异常处理的基本概念和技巧,以及如何使用SpringBoot2注入web原生组件。 异常处理 在Java开发中,异常处理是非常常见的。异常处理可以帮助我们更好地对代码进行保护,同时也能提供更好的用…

    Java 2023年5月31日
    00
  • Java8并行流中自定义线程池操作示例

    让我们来详细讲解一下“Java8并行流中自定义线程池操作示例”的完整攻略。 一、背景介绍 我们在使用Java8中的流处理时,有时会用到并行流来提升处理速度。但是默认情况下,在并行流中并行执行的线程数是由系统自动决定的,这可能不符合我们的需求。因此,我们需要自定义线程池来控制并行流中执行的线程数,从而提高代码的性能。 二、自定义线程池 Java多线程编程中,线…

    Java 2023年5月18日
    00
  • java时间日期使用与查询代码详解

    Java时间日期使用与查询代码详解 介绍 在Java中,日期和时间是一个常见的需求。Java为我们提供了用于处理日期和时间的多个类和方法。本文将深入介绍Java的日期时间相关的类和方法,并提供使用示例和代码详解。 本文涉及以下类: java.time.LocalDate – 表示只用日期,不包含时间的类。 java.time.LocalTime – 表示只用…

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