I/O是Input/Output的缩写, I/O技术是非常实用的技术,用于 处理设备之间的数据传输。对于Java开发来说,我们是站在程序方面的,所以Java中的Input是指从网络/本地文件读取到程序中,而Output则是从程序写入到本地文件或上传网络中。
流的分类:
1、根据流的单位分:字节流、字符流;
2、根据流的流向分:输出流、输入流;
3、根据流的角色分:节点流、处理流。
流的对应关系:
抽象基类 | 字节流 | 字符流 |
---|---|---|
输入流 | InputStream | Reader |
输出流 | OutputStream | Writer |
流的相关概念理解:
字符流:Reader、Writer------用于处理文本文件,如果用于处理字节流会出错;
字节流:InputStream、OutputStream------用于处理非文本文件,如果不在内存层面读取的话,处理文本也可以用字节流,但是如果在内存层面读取会乱码。
节点流:直接操作文件或数据的流;
处理流:不直接处理文本或数据,而是操作节点流或其他处理流的流,主要作用是使得节点流传输数据效率更高。