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

Java 文件操作与 IO 流入门:从基础到实战,新手必看全攻略 在 Java 开发中文件操作和IO 流是处理本地文件、数据读写的核心技术也是新手入门最容易踩坑的知识点。从零梳理文件操作的基础用法、IO 流的分类与实战帮你彻底搞定 Java 文件 IO。一先搞懂Java 中的文件路径必学Java 操作文件第一步必须写对路径路径错了直接报FileNotFoundException。1. 两种路径绝对路径 vs 相对路径绝对路径从根目录开始写的完整路径唯一指向一个文件。WindowsD:\\project\\test.txtLinux/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.路径常见坑重点单写\一定会报错必须写\\相对路径找不到文件 → 检查是否放在项目根目录路径带中文 → 建议全英文路径避免编码问题二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 个坑mkdir () 与 mkdirs () 区别mkdir()只能创建一级目录如a创建多级目录a/b/c会失败必须用mkdirs()创建嵌套目录。文件删除失败如果文件被 IO 流占用未关闭delete()会直接返回false删除无效。路径分隔符问题Windows 用\Linux/Mac 用/Java 中\是转义字符推荐写法// 跨平台通用写法 File file new File(a File.separator test.txt);三、IO 流核心概念1. 什么是 IO 流IOInput/Output流数据在内存与硬盘 / 网络之间传输的通道像水流一样传输数据。输入流Input数据从硬盘 → 内存读取文件输出流Output数据从内存 → 硬盘写入文件2. IO 流两大分类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(); }字符流Reader输入、Writer输出传输单位字符2 byte适用场景纯文本文件.txt/.java/.md专门解决中文乱码问题2体系总结字节流基类InputStream、OutputStream万能流字符流基类Reader、Writer纯文本专用