Photo by Lorem Ipsum
475 words
2 minutes
Java SE 系列(六):IO 流核心知识
Java SE 教程
Posts in this series (10)AI 智能总结
Java SE 6 IO 流核心知识
IO 流用于实现文件读写、数据传输,是 Java 数据持久化核心。本文精简讲解 File 类、字节流、字符流、缓冲流、资源释放,搭配极简可运行代码,清晰易懂。
一、File 文件类
File 是文件 / 文件夹的操作工具,仅操作文件属性,不读写内容。可实现文件创建、删除、判断、路径获取。
// 创建文件对象File file = new File("test.txt");// 创建文件if (!file.exists()) { file.createNewFile();}二、字节流:万能读写
适配所有文件(图片、视频、文档、文本),以字节为单位传输,基类:InputStream/OutputStream。
// 字节流写入文件try (FileOutputStream fos = new FileOutputStream("test.txt")) { fos.write("Java IO".getBytes());} catch (IOException e) { e.printStackTrace();}三、字符流:专属文本
仅用于文本文件(txt、java、md),以字符为单位,自动适配编码,避免中文乱码。基类:Reader/Writer。
// 字符流读取文本try (FileReader fr = new FileReader("test.txt")) { char[] buf = new char[1024]; fr.read(buf); System.out.println(new String(buf));} catch (IOException e) { e.printStackTrace();}四、缓冲流:高效优化
普通 IO 单次读写效率低,缓冲流自带缓冲区,大幅提升读写速度,是开发首选。
字节缓冲流:BufferedInputStream/BufferedOutputStream
字符缓冲流:BufferedReader/BufferedWriter
// 高效读取文本try (BufferedReader br = new BufferedReader(new FileReader("test.txt"))) { // 按行读取,极其便捷 String line; while ((line = br.readLine()) != null) { System.out.println(line); }} catch (IOException e) { e.printStackTrace();}五、资源释放
IO 流属于系统资源,使用后必须关闭,否则造成资源泄漏。
传统方式:finally 手动调用 close() 关闭流
推荐方式:JDK7+ try-with-resources,自动关闭资源,代码简洁
核心总结
所有文件通用字节流,纯文本优先字符流。
日常开发一律使用缓冲流,替代普通基础流,效率更高。
File 只操作文件属性,不负责内容读写。
必须规范释放 IO 资源,try-with-resources 为最优写法。
Java SE 系列(六):IO 流核心知识
https://fuwari.vercel.app/posts/java-se-series/java-se-06-io/