讲讲传说中的Java I/O流

avatar
作者
猴君
阅读量:0

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位)。
  • 使用场景:字节流适用于所有数据类型,字符流仅适用于文本数据。
  • 性能:字符流在处理大量文本数据时可能更高效。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!