当前位置: 首页 > news >正文

Java 文件操作与 IO 流入门:从基础到实战,新手必看全攻略

在 Java 开发中,文件操作IO 流是处理本地文件、数据读写的核心技术,也是新手入门最容易踩坑的知识点。从零梳理文件操作的基础用法、IO 流的分类与实战,帮你彻底搞定 Java 文件 IO。

一,先搞懂:Java 中的文件路径(必学!)

Java 操作文件第一步必须写对路径,路径错了直接报FileNotFoundException

1. 两种路径:绝对路径 vs 相对路径

绝对路径:

根目录开始写的完整路径,唯一指向一个文件。

  • Windows:D:\\project\\test.txt
  • Linux/Mac:/home/user/test.txt

相对路径:

相对于当前项目根目录的路径(最常用)。

  • 写法:test.txt
  • 含义:项目根目录下的 test.txt 文件

2.路径分隔符(跨平台必看)

  • Windows 用\
  • Linux/Mac 用/
  • Java 中\转义字符,必须写\\
    最安全、跨平台写法
// 自动适配 Windows/Linux/Mac,永远不报错! String path = File.separator + "project" + File.separator + "test.txt"; File file = new File(path);

3.路径常见坑(重点)

  1. 单写\一定会报错,必须写\\
  2. 相对路径找不到文件 → 检查是否放在项目根目录
  3. 路径带中文 → 建议全英文路径,避免编码问题

二,Java 文件操作基础(File 类)

java.io.File类是 Java 中用于操作文件 / 目录的核心类,它不负责读写数据,只负责对文件 / 目录进行创建、删除、查询、遍历等管理操作。

1.核心常用方法

// 1. 创建 File 对象(路径可以是文件,也可以是目录) File file = new File("test.txt"); File dir = new File("myFolder"); // 2. 判断方法 file.exists(); // 判断文件/目录是否存在 file.isFile(); // 判断是否是文件 file.isDirectory(); // 判断是否是目录 // 3. 创建方法 file.createNewFile();// 创建空文件(抛出 IOException) dir.mkdir(); // 创建<单级目录> dir.mkdirs(); // 创建<多级目录>(推荐!) // 4. 删除方法 file.delete(); // 删除文件/空目录

## 2. 新手必踩的 3 个坑

  1. mkdir () 与 mkdirs () 区别

    mkdir()只能创建一级目录(如a),创建多级目录(a/b/c)会失败;必须用mkdirs()创建嵌套目录。

  2. 文件删除失败

    如果文件被 IO 流占用未关闭,delete()会直接返回false,删除无效。

  3. 路径分隔符问题

    Windows 用\,Linux/Mac 用/,Java 中\是转义字符,推荐写法:

    // 跨平台通用写法 File file = new File("a" + File.separator + "test.txt");

三、IO 流核心概念

1. 什么是 IO 流?

IO(Input/Output)流:数据在内存与硬盘 / 网络之间传输的通道,像水流一样传输数据。

  • 输入流(Input):数据从硬盘 → 内存(读取文件)
  • 输出流(Output):数据从内存 → 硬盘(写入文件)

2. IO 流两大分类

1)按数据类型分
  1. 字节流InputStream(输入)、OutputStream(输出)

    • 传输单位:字节(8 bit)
    • 适用场景:所有文件(图片、视频、音频、文本等)

字节流是 Java IO 的基础,能处理任何类型文件,是开发中最常用的流。
文件字节输入流(FileInputStream):读取文件

public static void readFileByByte() throws IOException { // 1. 创建流对象 FileInputStream fis = new FileInputStream("test.txt"); // 2. 读取数据(单个字节读取) int b; while ((b = fis.read()) != -1) { // read() 读到末尾返回 -1 System.out.print((char) b); } // 3. 关闭流(必须!释放资源) fis.close(); }

文件字节输出流(FileOutputStream):写入文件

public static void writeFile() throws IOException { // 第二个参数 true:追加写入,false/不写:覆盖写入 FileOutputStream fos = new FileOutputStream("test.txt", true); // 写入字节数据 fos.write("Hello Java IO!\n".getBytes()); fos.write("你好,文件操作".getBytes()); fos.close(); }
  1. 字符流Reader(输入)、Writer(输出)

    • 传输单位:字符(2 byte)
    • 适用场景:纯文本文件(.txt/.java/.md),专门解决中文乱码问题
(2)体系总结
  • 字节流基类:InputStreamOutputStream(万能流)
  • 字符流基类:ReaderWriter(纯文本专用)
http://www.jsqmd.com/news/899045/

相关文章:

  • MCP博客园工具集成测试v3
  • AI Coding 助手的未来:从补全到自主编程的演进与工程准备
  • 2026上海二奢回收避坑指南|6大维度实测,这几家零投诉门店公开 - GrowthUME
  • 2026年5月惠州设计装修行业研究报告:高性价比排行榜揭晓 - 资讯纵览
  • 2026年夹钳式超声波流量计十大品牌:十家优选深度解析 - 科技焦点
  • FPGA实现ANU轻量级密码:4位到32位数据路径架构的权衡与实践
  • 热度暴跌 99%!基于OpenClaw的腾讯套壳QClaw还值得用吗?
  • 2026年中山全屋照明灯具采购厂家筛选标准出炉 宏盟照明凭综合实力稳居行业优选首位 - 资讯纵览
  • 2026年宿迁木门厂家推荐榜:宿迁木门定做、宿迁铝门定做厂家选择指南,成艺门业的场景化工艺切入 - 海棠依旧大
  • 求解全局优化问题几类填充罚函数及算法【附代码】
  • 2026海南代理记账怎么选?5家靠谱机构实测排行榜,做账报税不踩坑 - 资讯快报
  • 2026替换液压油缸的优选方案:耐高温工业推杆推荐 - 资讯快报
  • 2026年5月工程信息平台革命:中项网助工程企业获客转型 - GrowthUME
  • 2026年活性炭厂家深层解析 - 资讯快报
  • 电力工程项目信息平台的数据价值:中项网如何提升设备企业获客效率 - GrowthUME
  • 2026年罗斯蒙特差压变送器国产平替:五家优选深度解析 - 科技焦点
  • 微信匿名投票小程序:[云帆投票简单又便捷的设置指南] - 投票小程序
  • 选变频器风机品牌怎么选?2026年5月推荐TOP5评测工业场景防过载专业选择指南
  • 如何快速修复损坏的视频文件?Untrunc终极指南
  • 西安地铁广告公司TOP5权威发布:2026年最新实力排名与深度测评 - 资讯纵览
  • 终极DS4Windows手柄兼容性解决方案:3分钟完成PS4手柄PC连接
  • 2026年中山照明灯具行业主流优质生产厂家盘点 - 资讯纵览
  • 企业SSL证书选型指南:DV/OV/EV证书怎么选?
  • OpenVINO™ AI音频插件:在Audacity中免费体验本地AI音频处理
  • 5月聚焦亳州,口碑好的新能源汽车专业学校推荐来啦,职业学校/机电一体化专业学校,新能源汽车专业学校哪家好 - 品牌推荐师
  • 别再只用Animator了!聊聊Unity序列帧动画的另一种高效管理思路(以跑酷游戏为例)
  • 2026年横河差压变送器国产平替推荐:五家优选深度解析 - 科技焦点
  • 如何通过Python快速调用Taotoken聚合的多款大模型API
  • step7V5.6FB功能块向低版本(V5.3)移植教程
  • 2026工商业洗地机租赁指南:南京嘉得力打造轻资产清洁方案 - 资讯快报