提示
Java IO 相关。@ermo
# Java IO
无论是文字、图片、视频,在计算机中都用二进制进行存储。
java.io
包中有一整套用于操作流和文件的类。IO 就是 input/output 的缩写,输入流(input stream)用于将数据从源读取到程序中,输出流(output stream)用于将数据从程序中输出到指定 IO 设备(文件、键盘、显示器等)。
用于操作字节的输入输出流为 InputStream
和 OutputStream
,这两个类都是抽象类,实际使用时应该使用对应的子类进行流的输入和输出操作。
# 字节流
# FileInputStream-FileOutputStream
# ByteArrayInputStream-ByteArrayOutputStream
# DataInputStream-DataOutputStream
学习 DataInputStream/DataOutputStream
前应该简单了解下设计模式中的装饰器模式。
装饰器模式(Decorator Pattern)的作用是动态的给一个类添加一些额外的职责。
详见 装饰器模式示例
# BufferedInputStream-BufferedOutputStream
# ObjectInputStream-ObjectOutputStream
# 字符流
面向字节的流不便于处于 Unicode 信息,Unicode 中每个字符都是使用多个字节存储信息。
所以单独抽出 Writer
和 Reader
这两个抽象类,实现这些类的子类的读写操作都是基于2个字节的 char
值的,也就是 Unicode 码元。
# InputStreamReader-OutputStreamWriter
# FileReader-FileWriter
# StringReader-StringWriter
# BufferedReader-BufferedWriter
# PrintWriter
参考
- Java 核心技术卷二