Java 中的 File 类常用方法介绍

        Java 中的 `File` 类是 java.io 包的一部分,它提供了丰富的文件操作方法。`File` 类可以用来表示文件和目录路径名的抽象表示形式,即它可以用来获取文件或目录的属性,也可以用来创建、删除、重命名文件和目录。下面是一些常用的 `File` 类方法,以及它们的简单示例。


        创建文件对象
在执行任何文件操作之前,需要创建一个 `File` 对象。


import java.io.File;
public class FileExample {public static void main(String[] args) {File file = new File("example.txt");}
}


        文件和目录的基本操作
        判断文件或目录是否存在


import java.io.File;
public class FileExample {public static void main(String[] args) {File file = new File("example.txt");if (file.exists()) {System.out.println("文件存在");} else {System.out.println("文件不存在");}}
}


        创建新文件


import java.io.File;
import java.io.IOException;
public class FileExample {public static void main(String[] args) {File file = new File("example.txt");try {if (file.createNewFile()) {System.out.println("文件创建成功");} else {System.out.println("文件已存在");}} catch (IOException e) {e.printStackTrace();}}
}


        删除文件


import java.io.File;
public class FileExample {public static void main(String[] args) {File file = new File("example.txt");if (file.delete()) {System.out.println("文件删除成功");} else {System.out.println("文件删除失败");}}
}


        创建目录


import java.io.File;
public class FileExample {public static void main(String[] args) {File directory = new File("exampleDir");if (directory.mkdir()) {System.out.println("目录创建成功");} else {System.out.println("目录创建失败");}}
}


        列出目录内容


import java.io.File;
public class FileExample {public static void main(String[] args) {File directory = new File(".");String[] files = directory.list();for (String file : files) {System.out.println(file);}}
}


        重命名文件或目录


import java.io.File;
public class FileExample {public static void main(String[] args) {File oldFile = new File("example.txt");File newFile = new File("newExample.txt");if (oldFile.renameTo(newFile)) {System.out.println("文件重命名成功");} else {System.out.println("文件重命名失败");}}
}


        获取文件属性
        获取文件大小


import java.io.File;
public class FileExample {public static void main(String[] args) {File file = new File("example.txt");if (file.exists() && file.isFile()) {System.out.println("文件大小: " + file.length() + " 字节");}}
}


        判断是文件还是目录


import java.io.File;
public class FileExample {public static void main(String[] args) {File file = new File("example.txt");if (file.isDirectory()) {System.out.println("这是一个目录");} else if (file.isFile()) {System.out.println("这是一个文件");}}
}


        获取最后修改时间


import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
public class FileExample {public static void main(String[] args) {File file = new File("example.txt");long lastModified = file.lastModified();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String date = sdf.format(new Date(lastModified));System.out.println("最后修改时间: " + date);}
}


        文件和目录的遍历
        遍历目录及其子目录


import java.io.File;
public class FileExample {public static void main(String[] args) {File directory = new File(".");listFiles(directory, 0);}public static void listFiles(File dir, int indent) {if (dir.isDirectory()) {File[] files = dir.listFiles();if (files != null) {for (File file : files) {for (int i = 0; i < indent; i++) {System.out.print("  ");}System.out.println(file.getName());if (file.isDirectory()) {listFiles(file, indent + 1);}}}}}
}


这个递归方法会打印出目录及其所有子目录中的文件和目录名,使用缩进来表示目录的层次结构。
        文件读写操作
`File` 类本身不提供文件内容的读写操作,但它是 `InputStream` 和 `OutputStream` 的基础,这些流类提供了读写文件内容的功能。下面是一些简单的读写文件的例子。
        写入文件


import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class FileWriteExample {public static void main(String[] args) {try {BufferedWriter writer = new BufferedWriter(new FileWriter("example.txt"));writer.write("Hello, World!");writer.newLine();writer.write("This is a simple text file example.");writer.close();} catch (IOException e) {e.printStackTrace();}}
}


        读取文件


import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class FileReadExample {public static void main(String[] args) {try {BufferedReader reader = new BufferedReader(new FileReader("example.txt"));String line;while ((line = reader.readLine()) != null) {System.out.println(line);}reader.close();} catch (IOException e) {e.printStackTrace();}}
}



这些例子展示了如何使用 `BufferedWriter` 和 `BufferedReader` 以及它们的包装器 `FileWriter` 和 `FileReader` 来写入和读取文本文件。
        总结
        Java 的 `File` 类为文件和目录操作提供了丰富的API。通过这些API,开发者可以轻松地创建、删除、重命名文件和目录,获取文件属性,遍历文件系统,以及读写文件内容。这些功能是任何需要文件操作的Java应用程序的基础。虽然现代Java开发中可能会使用更高级的API,如NIO.2(Java New I/O)中的 `Path` 和 `Files` 类,但 `File` 类仍然是一个重要和有用的工具。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/527980.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaEE+springboot教学仪器设备管理系统o9b00-springmvc

本文旨在设计一款基于Java技术的教学仪器设备销售网站&#xff0c;以提高网站性能、功能完善、用户体验等方面的优势&#xff0c;解决现有教学仪器设备销售网站的问题&#xff0c;并为广大教育工作者和学生提供便捷的教学仪器设备销售渠道。本文首先介绍了Java技术的相关基础知…

深入理解Hive:探索不同的表类型及其应用场景

文章目录 1. 引言2. Hive表类型概览2.1 按照数据存储位置2.2 按照数据管理方式2.3 按照查询优化2.4 按照数据的临时性和持久性 3. 写在最后 1. 引言 在大数据时代&#xff0c;Hive作为一种数据仓库工具&#xff0c;为我们提供了强大的数据存储和查询能力。了解Hive的不同表类型…

【运维】本地部署Gemma模型(图文)

工具简介 我们需要使用到两个工具&#xff0c;一个是Ollama&#xff0c;另一个是open-webui。 Ollama Ollama 是一个开源的大语言平台&#xff0c;基于 Transformers 和 PyTorch 架构&#xff0c;基于问答交互方式&#xff0c;提供大语言模型常用的功能&#xff0c;如代码生…

Day30:安全开发-JS应用NodeJS指南原型链污染Express框架功能实现审计

目录 环境搭建-NodeJS-解析安装&库安装 功能实现-NodeJS-数据库&文件&执行 安全问题-NodeJS-注入&RCE&原型链 案例分析-NodeJS-CTF题目&源码审计 开发指南-NodeJS-安全SecGuide项目 思维导图 JS知识点&#xff1a; 功能&#xff1a;登录验证&…

【数理统计实验(四)】方差分析

&#x1f349;CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一&#xff5c;统计学&#xff5c;干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项&#xff0c;参与研究经费10w、40w级横向 文…

java之mybatis

准备工作 上面4步骤 XML映射文件 动态SQL

小程序 van-field label和输入框改成上下布局

在组件上面加个样式就行&#xff1a;custom-style"display:block;" <van-field label"备注说明" type"textarea" clearable title-width"100px" custom-style"display:block;" placeholder"请输入" /> …

Springboot 集成kafka 消费者实现ssl方式连接监听消息实现消费

证书准备&#xff1a;springboot集成kafka 消费者实现 如何配置是ssl方式连接的时候需要进行证书的转换。原始的证书是pem, 或者csr方式 和key方式的时候需要转换&#xff0c;因为kafka里面是jks 需要通过openssl进行转换。 证书处理&#xff1a; KeyStore 用于存储客户端的证…

macOS14.4安装FFmpeg及编译FFmpeg源码

下载二进制及源码包 二进制 使用brew安装ffmpeg : brew install ffmpeg 成功更新到ffmpeg6.1 下载FFmpeg源码

AHU 算法分析 实验四 动态规划

实验四&#xff1a;动态规划 实验目的 • 理解动态规划的基本思想&#xff0c;理解动态规划算法的两个基本要素最 优子结构性质和子问题的重叠性质。 • 熟练掌握典型的动态规划问题。 • 掌握动态规划思想分析问题的一般方法&#xff0c;对较简单的问题能正确 分析&#x…

云上攻防-云产品篇堡垒机场景JumpServer绿盟SASTeleport麒麟齐治

知识点 1、云产品-堡垒机-产品介绍&攻击事件 2、云产品-堡垒机-安全漏洞&影响产品 章节点&#xff1a; 云场景攻防&#xff1a;公有云&#xff0c;私有云&#xff0c;混合云&#xff0c;虚拟化集群&#xff0c;云桌面等 云厂商攻防&#xff1a;阿里云&#xff0c;腾讯…

2024 年广东省职业院校技能大赛(高职组) “云计算应用”赛项样题①

2024 年广东省职业院校技能大赛&#xff08;高职组&#xff09; “云计算应用”赛项样题① 模块一 私有云&#xff08;50 分&#xff09;任务 1 私有云服务搭建&#xff08;10 分&#xff09;任务 2 私有云服务运维&#xff08;25 分&#xff09;任务 3 私有云运维开发&#xf…