讲讲传说中的Java I/O流
创始人
2024-11-11 15:37:49

Java I/O流概述

  • I/O源端和接收端:程序控制IDEA控制台输出、读取文件A写入文件B等。
  • Java I/O支持:位于java.io包,包含86个类和接口。

核心人物

  • Mark Reinhold:Oracle Java平台组首席架构师,字符流读取器和写入器的首席工程师。

输入流

  1. 字节输入流抽象基类InputStream

    • 提供读取字节流的方法:
      • read():读取下一个数据字节。
      • read(byte b[]):读取字节到数组。
      • read(byte b[], int off, int len):从指定位置读取指定长度的字节。
  2. 字节输入流读取

    • 子类实现:例如FileInputStream
    • 缓存提高效率:使用BufferedInputStream
  3. 字符输入流抽象基类Reader

    • 提供读取字符流的方法:
      • read():读取单个字符。
      • read(char cbuf[]):读取字符到数组。
      • read(char cbuf[], int off, int len):读取部分字符到数组。
  4. 提高读取效率

    • 使用缓存流减少系统调用和磁盘读取。
  5. 字符输入流实例

    • 使用BufferedReaderFileReader提高效率。

输出流

  1. 字节输出流抽象基类OutputStream

    • 提供写入字节流的方法。
  2. 字符输出流抽象基类Writer

    • 提供写入字符流的方法:
      • 写入单个字符。
      • 写入字符数组。
      • 写入字符串。

字节流与字符流的区别

  • 基本单位:字节流(8位)与字符流(16位)。
  • 使用场景:字节流适用于所有数据类型,字符流仅适用于文本数据。
  • 性能:字符流在处理大量文本数据时可能更高效。

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...