跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava

Java SE 文件 IO 基础

综述由AI生成Java SE 中文件 IO 的基础知识。首先讲解了 File 类的构造方法及常用操作方法,如路径获取、文件创建与删除等。其次阐述了 I/O 流的分类体系,包括字节流与字符流、输入输出流及节点处理流的区别。最后详细说明了 FileInputStream、FileOutputStream、FileReader 和 FileWriter 类的主要构造方法与常用 API,涵盖了文件读写的基本实现方式。

古灵精怪发布于 2026/3/30更新于 2026/5/2438 浏览
Java SE 文件 IO 基础

1. File 类的使用

这里主要介绍对文件增删改查的操作 , 不是对文件中的内容进行增删改查

1.1 构造方法

方法说明
File(File parent, String child)根据父目录 + 孩子文件路径,创建一个新的 File 实例
File(String pathname)根据文件路径创建一个新的 File 实例,路径可以是绝对路径或者相对路径
File(String parent, String child)根据父目录 + 孩子文件路径,创建一个新的 File 实例,父目录用路径表示

1.2 常用方法

方法说明
getParent()返回 File 对象的父目录文件路径
getName()返回 File 对象的纯文件名称
getPath()返回 File 对象的文件路径
getAbsolutePath()返回 File 对象的绝对路径
getCanonicalPath()返回 File 对象的修饰过的绝对路径
exists()判断 File 对象描述的文件是否真实存在
isDirectory()判断 File 对象代表的文件是否是一个目录
isFile()判断 File 对象代表的文件是否是一个普通文件
createNewFile()根据 File 对象,自动创建一个空文件。成功创建后返回 true
delete()根据 File 对象,删除该文件。成功删除后返回 true
deleteOnExit()根据 File 对象,标注文件将被删除,删除动作会到 JVM 运行结束时才会进行
list()返回 File 对象代表的目录下的所有文件名
listFiles()返回 File 对象代表的目录下的所有文件,以 File 对象表示
mkdir()创建 File 对象代表的目录
mkdirs()创建 File 对象代表的目录,如果必要,会创建中间目录
renameTo(File dest)进行文件改名,也可以视为我们平时的剪切、粘贴操作
canRead()判断用户是否对文件有可读权限
canWrite()判断用户是否对文件有可写权限

2. I/O 流

I/O 是 Input/Output 的缩写。I/O 技术是非常实用的技术,用于处理数据传输。如读/写文件,网络通讯等。 Java 程序中,对于数据的输入/输出操作以"流(stream)" 的方式进行。 java.io 包下提供了各种"流"类和接口,用以获取不同种类的数据,并通过方法输入或输出数据

2.1 I/O 流的分类

  1. 按操作数据单位不同分为:字节流 (8 bit),字符流 (16 bit)
  2. 按数据流的流向不同分为:输入流,输出流
  3. 按流的角色的不同分为:节点流,处理流
抽象基类字节流字符流
输入流InputStreamReader
输出流OutputStreamWriter

2.2 I/O 体系

Java 的 io 流共涉及 40 多个类,实际上非常规则,都是以上述 4 个抽象基类派生的

3. 字节流

3.1 InputStream 类

InputStream 是抽象类 , 我们现在只关心从文件中读取,所以使用 FileInputStream 类实例化对象

  1. FileInputStream 类的构造方法
方法说明
FileInputStream(File file)通过指定的 File 对象来创建输入流。
FileInputStream(String pathname)通过指定文件的路径字符串来创建输入流。
  1. FileInputStream 类的常见方法
方法说明
int read()从输入流中读取一个字节的数据。
int read(byte[] b)从输入流中读取一定数量的字节到字节数组中,返回长度。
int read(byte[] b, int off, int len)最多读取 len - off 字节的数据到 b 中,放在从 off 开始,返回实际读到的数量;-1 代表已经读完了
void close()关闭字节流

3.2 OutputStream 类

OutputStream 同样只是一个抽象类,要使用还需要具体的实现类。我们现在还是只关心写入文件中,所以使用 FileOutputStream 类实例化对象

  1. FileOutputStream 的构造方法
方法说明
FileOutputStream(File file)通过指定的 File 对象来创建输出流
FileOutputStream(String name)通过指定文件的路径字符串来创建输出流
  1. FileOutputStream 的常用方法
方法说明
write(int b)写入一个字节到文件。
write(byte[] b)将一个字节数组写入文件
write(byte[] b, int off, int len)从字节数组的指定位置开始,写入指定长度的字节到文件
close()关闭输出流,释放相关资源。

4. 字符流

4.1 Reader 类

FileReader 类主要用于从文件中读取字符数据。它是一个字符输入流,继承自 InputStreamReader(转换流),抽象基类为 Reader。可以通过构造方法传入文件路径来创建

  1. FileReader 的构造方法
方法说明
FileReader(File file)创建一个与指定文件对象相关联的 FileReader。
FileReader(String fileName)创建一个与指定文件路径名相关联的 FileReader
  1. FileReader 的常用方法
方法说明
int read()从输入流中读取一个字符,返回该字符的整数表示(到达文件末尾返回 -1)
int read(char[] cbuf)将字符读入数组。返回读取的长度
void close()关闭该流并释放与之关联的所有资源。

4.2 Writer 类

FileWriter 类用于将字符数据写入文件。

  1. FileWriter 的常用方法
方法说明
write(int c)写入单个字符到文件中。
write(char[] cbuf)将字符数组写入文件中。
write(String str)写入字符串到文件中。
write(String str, int off, int len)写入字符串的一部分到文件中。
flush()刷新缓冲区,将数据写入文件。
close()关闭文件并释放相关资源。

目录

  1. 1. File 类的使用
  2. 1.1 构造方法
  3. 1.2 常用方法
  4. 2. I/O 流
  5. 2.1 I/O 流的分类
  6. 2.2 I/O 体系
  7. 3. 字节流
  8. 3.1 InputStream 类
  9. 3.2 OutputStream 类
  10. 4. 字符流
  11. 4.1 Reader 类
  12. 4.2 Writer 类
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 本地离线部署 Whisper 模型进行语音转写
  • 【AI】谷歌TurboQuant算法:内存占用减少至少6倍
  • 鸿蒙 6.0 应用开发:仿微博文本折叠功能实现
  • Linux 网络编程实战:基于 C++ 实现 JSON 与 HTTP Web 服务器
  • HarmonyOS 网络请求实战:Axios 集成与用户列表交互
  • 鸿蒙系统开发技术指南:ArkTS、ArkUI与Stage模型详解
  • Python 版本选择指南:3.10 至 3.13 特性对比与推荐
  • Claude Code Viewer: Web 端 Claude Code 会话管理工具
  • SQL 注入详解:从原理到实战
  • PLL 时钟进阶:差分与单端时钟的硬件实现及抗噪策略
  • 华为 P30 系列从鸿蒙 4.2 降级至 EMUI 9 实战指南
  • Magic API 低代码接口开发平台完全指南
  • 前端 Base64 文件上传详解:原理、实现与最佳实践
  • 非英文 RAG 系统中 Embedding 模型的选择与应用策略
  • Python 实现十大经典排序算法详解:原理、代码与复杂度分析
  • 基于 Rokid 灵珠平台构建旅游 AR 智能体实战
  • Vue3 人机对话界面实现:流式请求与 ECharts 图表集成
  • Qwen3-VL-WEBUI 移动端集成与 API 部署教程
  • Virt-A-Mate 虚拟现实交互软件功能简介
  • libwebkit2gtk-4.1-0 安装失败时的备选库兼容性评估

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online