Java中File类方法详解以及实践

Java中File类方法详解以及实践

介绍

Java中的File类用于描述操作系统文件和目录的抽象。File类无法实现文件内容的操作,但是可以获取或修改文件的属性信息和路径信息。File类提供了很多方法,涵盖了文件和目录常见的操作,本文将对Java中File类常用的方法做一个详细讲解,并提供几个实例演示。

构造函数

File类的构造函数有多个重载形式,提供不同的参数类型,以支持不同的文件路径形式和容错处理。

public File(String pathname);
public File(String parent, String child);
public File(File parent, String child);

参数解释:

  • pathname:文件路径。
  • parent:父目录。
  • child:自文件或目录。

示例:

// 以字符串形式指定文件路径
File file1 = new File("D:\\test\\test.txt");
// 以父目录和文件名的字符串形式指定文件路径
File file2 = new File("D:\\test", "test.txt");
// 以父目录和文件名的File对象形式指定文件路径
File file3Parent = new File("D:\\test");
File file3 = new File(file3Parent, "test.txt");

常用方法

File类提供了很多方法用于操作文件和目录,以下是常用的几个。

获取文件路径

public String getAbsolutePath();
public String getPath();
public String getParent();
public File getAbsoluteFile();
public File getParentFile();

参数解释:

  • getAbsolutePath:返回文件的绝对路径字符串。
  • getPath:返回文件的路径字符串。
  • getParent:返回文件的父目录路径字符串。
  • getAbsoluteFile:返回文件的绝对路径File对象。
  • getParentFile:返回文件的父目录File对象。

示例:

File file = new File("D:\\test\\test.txt");
System.out.println("getAbsolutePath:" + file.getAbsolutePath());
System.out.println("getPath:" + file.getPath());
System.out.println("getParent:" + file.getParent());
System.out.println("getAbsoluteFile:" + file.getAbsoluteFile());
System.out.println("getParentFile:" + file.getParentFile());

输出结果:

getAbsolutePath:D:\test\test.txt
getPath:D:\test\test.txt
getParent:D:\test
getAbsoluteFile:D:\test\test.txt
getParentFile:D:\test

检查文件状态

public boolean exists();
public boolean isFile();
public boolean isDirectory();
public boolean canRead();
public boolean canWrite();
public boolean canExecute();

参数解释:

  • exists:文件或目录是否存在。
  • isFile:是否是文件。
  • isDirectory:是否是目录。
  • canRead:是否可读。
  • canWrite:是否可写。
  • canExecute:是否可执行。

示例:

File file = new File("D:\\test\\jmeter.png");
System.out.println("exists:" + file.exists());
System.out.println("isFile:" + file.isFile());
System.out.println("isDirectory:" + file.isDirectory());
System.out.println("canRead:" + file.canRead());
System.out.println("canWrite:" + file.canWrite());
System.out.println("canExecute:" + file.canExecute());

输出结果:

exists:true
isFile:true
isDirectory:false
canRead:true
canWrite:true
canExecute:false

文件操作

public boolean createNewFile();
public boolean delete();
public boolean renameTo(File dest);
public long length();
public boolean setLastModified(long time);
public boolean setReadOnly();

参数解释:

  • createNewFile:创建新文件,如果文件已存在会返回false。
  • delete:删除文件或目录。
  • renameTo:重命名文件或目录。
  • length:获取文件长度。
  • setLastModified:设置文件最后修改时间,参数是时间戳。
  • setReadOnly:设置文件只读。

示例:

// 创建文件
File file = new File("D:\\test\\test.txt");
try {
    file.createNewFile();
} catch (IOException e) {
    e.printStackTrace();
}

// 重命名文件
File newFile = new File("D:\\test\\new_test.txt");
file.renameTo(newFile);

// 获取文件长度
System.out.println(file.length());

// 设置只读
newFile.setReadOnly();

目录操作

public boolean mkdir();
public boolean mkdirs();
public String[] list();
public File[] listFiles();

参数解释:

  • mkdir:创建目录,只能创建单个目录,如果父目录不存在,会抛出异常。
  • mkdirs:创建目录,能够创建多级目录。
  • list:列出目录中的文件和子目录名称数组。
  • listFiles:列出目录中的文件和子目录File对象数组。

示例:

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

// 创建多级目录
File multiDir = new File("D:\\test\\multi\\dir");
multiDir.mkdirs();

// 列出文件和子目录名称
File[] files = dir.listFiles();
for (File f : files) {
    System.out.println(f.getName());
}

示例

以下是两个示例,一个是利用File类保存数据,另一个是利用File类读取数据。

保存数据

import java.io.*;

public class SaveToFile {
    public static void main(String[] args) throws IOException {
        File file = new File("D:\\test\\data.txt");
        if (!file.exists()) {
            file.createNewFile();
        }

        FileWriter writer = new FileWriter(file);
        BufferedWriter bWriter = new BufferedWriter(writer);

        bWriter.write("hello world!");

        bWriter.close();
        writer.close();
    }
}

执行后会在D:\test目录下生成一个data.txt文件,文件内容为hello world!。

读取数据

import java.io.*;

public class ReadFromFile {
    public static void main(String[] args) throws IOException {
        File file = new File("D:\\test\\data.txt");
        if (!file.exists()) {
            return;
        }

        FileReader reader = new FileReader(file);
        BufferedReader bReader = new BufferedReader(reader);

        String line = bReader.readLine();
        System.out.println(line);

        bReader.close();
        reader.close();
    }
}

执行后会从D:\test\data.txt文件中读取并输出hello world!。

总结

本文介绍了Java中File类的常用方法,包括构造函数、获取文件路径、检查文件状态、文件操作、目录操作等。并提供了两个示例演示如何利用File类实现数据保存和读取操作。使用File类可以轻松对文件和目录进行管理和操作,是Java IO编程不可或缺的一部分。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中File类方法详解以及实践 - Python技术站

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

相关文章

  • Struts 2 配置Action详解

    Struts 2 配置Action详解 在 Struts 2 中,Action 是一个处理请求的对象,负责接收来自用户的请求,并进行处理。配置 Action 是 Struts 2 中比较重要的一项任务,配置不当会导致程序无法正常工作或者存在安全隐患。本篇文章将详细讲解 Struts 2 中如何配置 Action。 配置 Struts 2 Action 在 S…

    Java 2023年5月20日
    00
  • jmeter添加自定函数的实例(jmeter5.3+IntelliJ IDEA)

    下面我将为你讲解“jmeter添加自定函数的实例(jmeter5.3+IntelliJ IDEA)”的攻略: 1. 准备工作 1.1 下载安装Java Development Kit(JDK) 在JMeter中开发自定义Java代码,需要安装好JDK,并设置好JAVA_HOME环境变量。下载地址:https://www.oracle.com/java/tec…

    Java 2023年5月19日
    00
  • Java实现房屋出租系统详解

    Java实现房屋出租系统详解 系统背景 房屋出租系统是一个关注于在线房屋租赁的平台,使得房东可以上传房屋信息,而租客可以浏览平台上的房源,选择心仪房屋进行租赁。 系统功能 该系统主要包含了以下几个功能模块: 房东和租客注册登录:用户需要注册并登录才能使用平台功能。 房源信息管理:房东可以添加、修改和删除房源信息,租客可以查询房源信息。 订单管理:租客可以下单…

    Java 2023年5月24日
    00
  • Java kafka如何实现自定义分区类和拦截器

    一、自定义分区 Kafka 提供了默认的分区策略,默认分区策略为DefaultPartitioner。当我们需要实现自定义分区策略时,需要继承Partitioner接口,并重写其中的方法。下面是实现自定义分区的步骤: 实现Partitioner接口 public class CustomPartitioner implements Partitioner {…

    Java 2023年5月20日
    00
  • 基于Java实现马踏棋盘游戏算法

    基于Java实现马踏棋盘游戏算法 什么是马踏棋盘游戏? 马踏棋盘游戏(英文名Knight’s Tour)是一种经典的棋盘游戏,该游戏要求在一个 $n \times n$ 的棋盘上,使用国际象棋中马的移动方式,从一个初始位置出发,依次移动,走遍所有的格子,且每个格子只能走一次。 算法思路 基于深度优先搜索(DFS)的回溯算法是解决马踏棋盘游戏的最优算法,其基本…

    Java 2023年5月19日
    00
  • 教你轻松制作java视频播放器

    教你轻松制作Java视频播放器攻略 1. 软件准备 首先需要准备以下开发环境和工具:- JDK:Java开发工具包,用来编译和运行Java程序,建议使用JDK 8及以上版本。- Eclipse IDE:一款开源的Java集成开发环境,可以进行Java程序的编辑、编译、调试等操作。当然也可以使用其他集成开发环境,如NetBeans等。 2. 开始制作 步骤一:…

    Java 2023年5月20日
    00
  • Java实现文件监控器FileMonitor的实例代码

    下面我将为您详细介绍Java实现文件监控器FileMonitor的实例代码攻略。 FileMonitor简介 FileMonitor是Java文件监控器的一种实现方式。它可以用于监控指定目录下的文件或文件夹的变化,包括文件的创建、修改、删除等操作,以便及时做出相应的处理。 实现步骤 引入相关依赖 使用FileMonitor需要引入相应的依赖,其中最重要的是c…

    Java 2023年5月20日
    00
  • 详解Java中的println输入和toString方法的重写问题

    下面是详解Java中的println输入和toString方法的重写问题的完整攻略。 一、概述 在Java中,我们经常需要输出字符串以便于调试代码、观察程序运行逻辑等。此时,Java提供的println方法就非常方便,我们可以通过System.out.println()将信息输出到控制台。不过,在输出对象时,可能会遇到一些问题,比如输出的信息不够明确、可读性…

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