🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## Java的流式输入输出 ![](https://box.kancloud.cn/bd45a166a5c965d21a666ad2847725aa_588x603.jpg) * java.io包中定义了多个流类型(类或抽象类)来实现输入/输出功能; * 可以从不同的角度对其进行分类: * 按数据流的方向不同可以分为输入流和输出流。 * 按处理数据单位不同可以分为字节流和字符流。 * 按照功能不同可以分为节点流和处理流。 | | 字节流 | 字符流 | | --- | --- | ---| | 输入流 | InputStream | Reader | | 输出流 | OutputStream | Writer | ![](https://box.kancloud.cn/02b8ffdb6d4a2a63c58d65cee8166120_832x852.png) ![](https://box.kancloud.cn/4fa9ef036e7b1164068a21662d4e31d6_969x514.png) ## InputStream ![](https://box.kancloud.cn/4378e5d948ae0d23600f734859113207_582x270.jpg) ![](https://box.kancloud.cn/e280ddc79fb44624da50dee59aa5101b_1050x584.jpg) ## OutputStream ![](https://box.kancloud.cn/148505c25c698b38ce236537b9aaab2f_593x222.jpg) ![](https://box.kancloud.cn/f1f9941958b861895251af7c8394237c_741x350.jpg) ## Reader ![](https://box.kancloud.cn/91e3333e31274e21fdb483ca1f47c792_548x265.jpg) ## Writer ![](https://box.kancloud.cn/c093a4d4aee64a095ab2f24f333b34a0_533x268.jpg) ## 缓冲流 缓冲流需要套接在相应的节点流之上,对读写数据提供缓冲功能,提高读写效率。 ![](https://box.kancloud.cn/e8237172acdf79b2d536c6f1dbfb142c_486x144.jpg) * 其中BufferedReader提供了readLine方法用于读取一行字符串。 * BufferedWriter提供了newLine方法写入一个行分隔符。 ## 转换流 * InputStreamReader和OutputStreamWriter用于字节到字符的转换。 * InputStreamReader需要和InputStream套接。 * OutputStreamWriter需要和OutputStream套接。 ## 数据流 * DataInputStream 和 DataOutputStream分别继承自InputStream和OutputStream,属于处理流,需要套接在InputStream和OutputStream中。 * DataInputStream和DataOutputStream提供了存取Java原始类型的方法。