讲讲传说中的Java I/O流

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位)。
  • 使用场景:字节流适用于所有数据类型,字符流仅适用于文本数据。
  • 性能:字符流在处理大量文本数据时可能更高效。
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值