阅读量:0
Java I/O流概述
- I/O源端和接收端:程序控制IDEA控制台输出、读取文件A写入文件B等。
- Java I/O支持:位于
java.io
包,包含86个类和接口。
核心人物
- Mark Reinhold:Oracle Java平台组首席架构师,字符流读取器和写入器的首席工程师。
输入流
字节输入流抽象基类
InputStream
- 提供读取字节流的方法:
read()
:读取下一个数据字节。read(byte b[])
:读取字节到数组。read(byte b[], int off, int len)
:从指定位置读取指定长度的字节。
- 提供读取字节流的方法:
字节输入流读取
- 子类实现:例如
FileInputStream
。 - 缓存提高效率:使用
BufferedInputStream
。
- 子类实现:例如
字符输入流抽象基类
Reader
- 提供读取字符流的方法:
read()
:读取单个字符。read(char cbuf[])
:读取字符到数组。read(char cbuf[], int off, int len)
:读取部分字符到数组。
- 提供读取字符流的方法:
提高读取效率
- 使用缓存流减少系统调用和磁盘读取。
字符输入流实例
- 使用
BufferedReader
和FileReader
提高效率。
- 使用
输出流
字节输出流抽象基类
OutputStream
- 提供写入字节流的方法。
字符输出流抽象基类
Writer
- 提供写入字符流的方法:
- 写入单个字符。
- 写入字符数组。
- 写入字符串。
- 提供写入字符流的方法:
字节流与字符流的区别
- 基本单位:字节流(8位)与字符流(16位)。
- 使用场景:字节流适用于所有数据类型,字符流仅适用于文本数据。
- 性能:字符流在处理大量文本数据时可能更高效。