Java I/O工作机制介绍 | 且码且珍惜
Java 的 I/O 操作类在包 java.io 下,大概有将近 80 个类,但是这些类大概可以分成四组,分别是:
java IO 备忘录
Java 的 I/O 操作类在包 java.io 下,大概有将近 80 个类,但是这些类大概可以分成四组,分别是:
- 基于字节操作的 I/O 接口:InputStream 和 OutputStream
- 基于字符操作的 I/O 接口:Writer 和 Reader
- 基于磁盘操作的 I/O 接口:File
- 基于网络操作的 I/O 接口:Socket
java IO 备忘录
判断是字节流还是字符流
字节流继承于InputStream OutputStream,字符流继承于InputStreamReader OutputStreamWriter。在java.io包中还有许多其他的流,主要是为了提高性能和使用方便。
FileReader和FileWriter
FileReader能够以字符流的形式读取文件内容。除了读取的单位不同之外(译者注:FileReader读取字符,FileInputStream读取字节),FileReader与FileInputStream并无太大差异
FileReader不提供指定明确编码的构造函数,所以通常推荐利用InputStreamReader配合FileInputStream来替代FileReader利用BufferedInputStream、BufferedOutputStream加速读取
BufferedInputStream支持mark() and reset()操作
并非所有
InputStream
子类支持这两个方法
PushbackInputStream
PushbackInputStream 可以回退读取的字节信息。
有时候你需要提前知道接下来将要读取到的字节内容,才能判断用何种方式进行数据解析。
input.unread(data);
DataInputStream
DataInputStream可以让你直接读取java的基础类型而不是字节从InputStream。这通常是非常有效率的,当你要读取的数据比一个字节还大的时候,并且DataInputStream通常是和DataOutputStream一起使用的。
ObjectInputStream
ObjectInputStream可以将Object读入,相反ObjectOutpustStream将序列化后的(implements Serializable)Object写出
LineNumberReader
按行读取数据,可以指定读取的行数或是获取当前读取数据的行数。
Read full article from Java I/O工作机制介绍 | 且码且珍惜
字节流继承于InputStream OutputStream,字符流继承于InputStreamReader OutputStreamWriter。在java.io包中还有许多其他的流,主要是为了提高性能和使用方便。
FileReader和FileWriter
FileReader能够以字符流的形式读取文件内容。除了读取的单位不同之外(译者注:FileReader读取字符,FileInputStream读取字节),FileReader与FileInputStream并无太大差异
FileReader不提供指定明确编码的构造函数,所以通常推荐利用InputStreamReader配合FileInputStream来替代FileReader利用BufferedInputStream、BufferedOutputStream加速读取
BufferedInputStream支持mark() and reset()操作
并非所有
InputStream
子类支持这两个方法
PushbackInputStream
PushbackInputStream 可以回退读取的字节信息。
有时候你需要提前知道接下来将要读取到的字节内容,才能判断用何种方式进行数据解析。
input.unread(data);
DataInputStream
DataInputStream可以让你直接读取java的基础类型而不是字节从InputStream。这通常是非常有效率的,当你要读取的数据比一个字节还大的时候,并且DataInputStream通常是和DataOutputStream一起使用的。
ObjectInputStream
ObjectInputStream可以将Object读入,相反ObjectOutpustStream将序列化后的(implements Serializable)Object写出
LineNumberReader
按行读取数据,可以指定读取的行数或是获取当前读取数据的行数。
StringReader
读取String数据
写String数据
Read full article from Java I/O工作机制介绍 | 且码且珍惜