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

Java SE 文件 IO 教程

📘 目录

  1. 文件 IO 简介

  2. 字节流 vs 字符流

  3. 常用输入输出类

  4. 文件的读取与写入

  5. 缓冲流提升效率

  6. 文件复制示例

  7. NIO 简介与对比

  8. 文件 IO 最佳实践

  9. 参考资料


1. 文件 IO 简介

Java 的 IO(Input/Output)机制通过流的形式实现数据读写操作,支持文件、网络、内存等不同数据源。文件 IO 是其中最常用的功能之一。


2. 字节流 vs 字符流

类型基础类适用场景
字节流InputStream / OutputStream任意类型的数据(如图像、音频)
字符流Reader / Writer文本文件(自动处理编码)

3. 常用输入输出类

🔹 字节流类:

  • FileInputStream

  • FileOutputStream

  • BufferedInputStream

  • BufferedOutputStream

🔹 字符流类:

  • FileReader

  • FileWriter

  • BufferedReader

  • BufferedWriter


4. 文件的读取与写入

🔸 字节流读取文件

import java.io.FileInputStream;public class ByteReadExample {public static void main(String[] args) throws Exception {FileInputStream fis = new FileInputStream("example.txt");int b;while ((b = fis.read()) != -1) {System.out.print((char) b);}fis.close();}
}

🔸 字符流写入文件

import java.io.FileWriter;public class CharWriteExample {public static void main(String[] args) throws Exception {FileWriter fw = new FileWriter("output.txt");fw.write("你好,Java 文件IO!");fw.close();}
}

5. 缓冲流提升效率

缓冲流通过内部缓冲区减少磁盘操作次数,性能更优。

示例:使用 BufferedReader 读取

import java.io.BufferedReader;
import java.io.FileReader;public class BufferedReadExample {public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new FileReader("example.txt"));String line;while ((line = br.readLine()) != null) {System.out.println(line);}br.close();}
}

6. 文件复制示例

import java.io.FileInputStream;
import java.io.FileOutputStream;public class FileCopy {public static void main(String[] args) throws Exception {FileInputStream in = new FileInputStream("source.txt");FileOutputStream out = new FileOutputStream("dest.txt");byte[] buffer = new byte[1024];int length;while ((length = in.read(buffer)) > 0) {out.write(buffer, 0, length);}in.close();out.close();System.out.println("复制完成!");}
}

7. Java NIO 简介

Java NIO(New IO)提供更高性能的文件读写:

示例:NIO 读取文件所有内容

import java.nio.file.*;
import java.util.List;public class NIOReadExample {public static void main(String[] args) throws Exception {List<String> lines = Files.readAllLines(Paths.get("example.txt"));lines.forEach(System.out::println);}
}

NIO 优势:

  • 支持内存映射

  • 更适合处理大文件或多线程并发

  • 提供非阻塞 IO 支持(配合 Selector)


8. 文件 IO 最佳实践

  • ✅ 始终关闭流(推荐使用 try-with-resources)

  • ✅ 使用缓冲流优化性能

  • ✅ 避免一次读取太多数据

  • ✅ 处理编码问题(如 UTF-8)

  • ✅ 异常处理不可忽视,防止数据丢失


9. 参考资料

  • Java IO 官方文档

  • Java NIO 文档

  • Effective Java - Item 9: Try-with-resources


JAVA SE 文件IO – 菜鸟-创作你的创作

相关文章:

  • 驭码CodeRider 2.0全栈开发实战指南:从零构建现代化电商平台
  • 数据养人:生产数据集驱的智能决策体系
  • Element Plus 表单(el-form)中关于正整数输入的校验规则
  • Python | 宽表转长表
  • 大数据清洗加工概述
  • UI学习(三)
  • 【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
  • 图片组件baseImage
  • SPI Flash开发全解(基于GD25Qxx)
  • 下载https协议的网络图片,并转为Base64
  • 基于vue框架的多媒体教室管理系统72d6w(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • Stream API:高效处理数据流!
  • 华为WLAN概述知识点及案例试题
  • 基于单片机的宠物屋智能系统设计与实现(论文+源码)
  • VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP
  • 【Docker 03】Docker Registry - 镜像仓库
  • 基于uni-app for HarmonyOS5 的跨平台组件库开发指南,以及组件示例
  • 安宝特科技丨Pixee Medical产品获FDA认证 AR技术赋能骨科手术智能化
  • 热烈祝贺埃文科技正式加入可信数据空间发展联盟
  • 无需布线的革命:电力载波技术赋能楼宇自控系统-亚川科技
  • 空调公司网站建设/今日重大新闻头条十条
  • 文化创意有限公司/天津百度快照优化公司
  • 淘宝属于什么类型的网站/石家庄网站建设seo公司
  • 越南的网站建设/短视频入口seo
  • 网站建设创业计划书模板范文/何鹏seo
  • 网站如何防注册机/市场调研模板