news 2026/4/15 9:34:43

【JavaSE】文件基础与File类

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【JavaSE】文件基础与File类

在日常开发中,我们几乎每天都在和“文件”打交道:读取配置文件、写日志、上传下载文件……
但很多时候,我们对“文件”的理解其实是比较模糊的,这篇文章我们将从文件的基本概念出发,重新了解一下文件~

1. 文件基础

1.1 文件与路径的基本概念

在实际开发中,我们经常需要和文件打交道,比如读取配置文件、写日志、上传下载文件等。因此,在学习 Java IO 之前,有必要先对“文件”本身有一个基本认识。

通常我们说的文件,是指保存在硬盘上的数据。需要注意的是,程序并不能直接操作硬盘这样的硬件资源,而是通过操作系统提供的“文件”这一抽象概念,间接完成对磁盘数据的读写。

1.2 路径的表示方式

为了在磁盘上定位某一个文件,操作系统引入了目录的概念

多个目录相互嵌套,最终形成一棵树形结构,从根目录出发,经过若干级目录,最终定位到目标文件。

这一整条“查找路径”,就是我们所说的文件路径

路径中一般使用/作为目录分隔符:

  • Linux / macOS 使用/
  • Windows 默认使用\,但同样支持/

在实际开发中,通常统一使用/,可以减少跨平台时的兼容问题。

1.3 绝对路径与相对路径

路径又可以分为两类:

绝对路径

从根目录(或盘符)开始,一直描述到目标文件的位置,例如:

C:/Users/xxx/Desktop/test.txt

绝对路径定位明确,但灵活性较差。

相对路径

相对于某一个基准目录来表示路径,例如:

./test.txt

其中:

  • .表示当前目录
  • ..表示当前目录的上一层

需要注意的是,相对路径必须依赖基准目录
在 Java 程序中,这个基准目录通常是 JVM 的工作目录,因此同一段代码在不同运行环境下,可能会出现“本地能跑,服务器找不到文件”的情况。

1.4 文件的类型

从开发角度来看,通常将文件分为两类:

  • 文本文件:内容可以按字符语义进行解析,例如.txt.java.xml
  • 二进制文件:内容按字节存储,需要特定程序解释,例如图片、音频、视频

二者的区别不在于“有没有意义”,而在于是否按照字符来理解文件内容

1.5 重命名与移动的本质

renameTo方法既可以用于重命名文件,也可以用于移动文件。

在操作系统层面,这两种操作的本质是一样的:
修改文件在目录树中的位置映射

  • 如果在同一磁盘内移动,开销很小,速度很快
  • 如果跨磁盘移动,则会退化为“复制 + 删除”,性能明显下降

这一点在处理大文件时尤为明显

2. File 类

Java 提供了java.io.File类,用于操作文件系统

需要强调的是:

File 类并不负责文件内容的读写

它的主要作用包括:

  • 判断文件或目录是否存在
  • 创建、删除文件
  • 创建目录
  • 重命名或移动文件

真正的文件读写,需要通过输入流、输出流来完成

有了文件,接下来我们来介绍一下IO~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/11 20:13:30

探索 qCumber 单元测试框架

在编程领域,单元测试是确保代码质量和可靠性的重要环节。qCumber 是 kdb+/q 语言的一个单元测试框架,专门用于测试 q 脚本。本文将深入探讨如何使用 qCumber 框架进行单元测试,并通过一个具体的实例来展示其应用。 qCumber 简介 qCumber 是一个轻量级的测试框架,适用于 k…

作者头像 李华
网站建设 2026/4/12 1:14:45

[特殊字符]_内存管理深度解析:如何避免GC导致的性能陷阱[20260108170807]

作为一名经历过无数性能调优案例的工程师,我深知内存管理对Web应用性能的影响有多大。在最近的一个项目中,我们遇到了一个棘手的性能问题:系统在高并发下会出现周期性的延迟飙升,经过深入分析,发现问题根源竟然是垃圾回…

作者头像 李华
网站建设 2026/4/12 16:41:06

[特殊字符]_压力测试与性能调优的完整指南[20260108171530]

作为一名经历过无数次压力测试的工程师,我深知压力测试在性能调优中的重要性。压力测试不仅是验证系统性能的必要手段,更是发现性能瓶颈和优化方向的关键工具。今天我要分享的是基于真实项目经验的压力测试与性能调优完整指南。 💡 压力测试…

作者头像 李华
网站建设 2026/4/12 16:41:04

今天智谱上市,成为全球大模型第一股!

今天智谱(股票代码:2513.HK)于2026年1月8日在港交所主板正式挂牌上市,成为"全球大模型第一股"。公司开盘报120港元,较发行价116.2港元上涨3.27%,市值达528亿港元。

作者头像 李华
网站建设 2026/4/12 16:41:03

29.useEventListener

React useEventListener 钩子:如何优雅地管理事件监听器? 在 React 应用开发中,添加和管理事件监听器是一个常见任务,但直接在组件中使用原生的 addEventListener 和 removeEventListener 可能会导致代码冗长且容易出错。useEventListener 钩子提供了一种简洁而强大的方式…

作者头像 李华