欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > JavaSE核心知识点03高级特性03-03(IO流)

JavaSE核心知识点03高级特性03-03(IO流)

2025/5/25 10:42:37 来源:https://blog.csdn.net/mo_sss/article/details/148144928  浏览:    关键词:JavaSE核心知识点03高级特性03-03(IO流)

🤟致敬读者

  • 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉

📘博主相关

  • 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息

文章目录

    • JavaSE核心知识点03高级特性03-03(IO流)
      • **一、IO 流的作用**
      • **二、IO 流的分类**
        • 1. **按数据流向分**
        • 2. **按数据类型分**
      • **三、常用 IO 类**
        • 1. **字节流**
        • 2. **字符流**
        • 3. **其他工具类**
      • **四、代码示例**
        • 1. **字节流示例:复制图片**
        • 2. **字符流示例:读取文本文件**
        • 3. **控制台输入**
      • **五、关键注意事项**
      • **六、IO 流的选择**
      • **七、总结**


📃文章前言

  • 🔷文章均为学习工作中整理的笔记。
  • 🔶如有错误请指正,共同学习进步。

在这里插入图片描述

JavaSE核心知识点03高级特性03-03(IO流)

Java 中的 IO 流是处理输入/输出操作的核心工具,我会尽量用通俗易懂的方式为你讲解,分为以下几个部分:


一、IO 流的作用

IO(Input/Output)流用于处理数据的输入和输出,例如:

  • 从文件读取数据(输入)
  • 向文件写入数据(输出)
  • 网络数据传输
  • 控制台输入输出

二、IO 流的分类

Java IO 流主要分为两大类:

1. 按数据流向分
  • 输入流(Input Stream):从外部(如文件)读取数据到程序。
  • 输出流(Output Stream):将程序中的数据写入到外部(如文件)。
2. 按数据类型分
  • 字节流(Byte Stream):以字节(8-bit)为单位处理数据,适用于所有文件类型(如图片、视频、文本等)。
    • 核心类:InputStreamOutputStream
  • 字符流(Character Stream):以字符(16-bit Unicode)为单位处理数据,专为文本文件设计(如 .txt.java)。
    • 核心类:ReaderWriter

三、常用 IO 类

1. 字节流
  • 文件读写
    • FileInputStream:读取字节文件
    • FileOutputStream:写入字节文件
  • 缓冲流(高效读写)
    • BufferedInputStream:带缓冲的字节输入流
    • BufferedOutputStream:带缓冲的字节输出流
2. 字符流
  • 文件读写
    • FileReader:读取字符文件
    • FileWriter:写入字符文件
  • 缓冲流(高效读写)
    • BufferedReader:带缓冲的字符输入流
    • BufferedWriter:带缓冲的字符输出流
3. 其他工具类
  • Scanner:方便读取控制台输入或解析文件。
  • PrintWriter:格式化输出文本。

四、代码示例

1. 字节流示例:复制图片
try (FileInputStream fis = new FileInputStream("input.jpg");FileOutputStream fos = new FileOutputStream("output.jpg")
) {byte[] buffer = new byte[1024];int length;while ((length = fis.read(buffer)) != -1) {fos.write(buffer, 0, length);}
} catch (IOException e) {e.printStackTrace();
}
2. 字符流示例:读取文本文件
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();
}
3. 控制台输入
Scanner scanner = new Scanner(System.in);
System.out.print("请输入内容:");
String input = scanner.nextLine();
System.out.println("你输入的是:" + input);
scanner.close();

五、关键注意事项

  1. 资源关闭
    • 必须用 close() 关闭流,或使用 try-with-resources(Java 7+)自动关闭。
  2. 缓冲流提升性能
    • 使用 BufferedInputStreamBufferedReader 等缓冲类减少IO次数。
  3. 字符编码问题
    • 读写文本文件时,需注意编码(如 UTF-8),可使用 InputStreamReader 指定编码:
      new InputStreamReader(new FileInputStream("file.txt"), StandardCharsets.UTF_8);
      

六、IO 流的选择

  • 字节流:处理非文本文件(如图片、音频)或未知文件类型。
  • 字符流:处理文本文件,避免乱码问题。

七、总结

Java IO 流的核心是理解字节流与字符流的区别,掌握常用类的用法,并注意资源管理和编码问题。建议通过实际项目(如文件复制、日志记录)加深理解。

如果有具体问题或需要更多示例,可以随时问我! 😊



📜文末寄语

  • 🟠关注我,获取更多内容。
  • 🟡技术动态、实战教程、问题解决方案等内容持续更新中。
  • 🟢《全栈知识库》技术交流和分享社区,集结全栈各领域开发者,期待你的加入。
  • 🔵​加入开发者的《专属社群》,分享交流,技术之路不再孤独,一起变强。
  • 🟣点击下方名片获取更多内容🍭🍭🍭👇

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词