Java流
根据流是否直接与某特定地方相接(磁盘、内存、外设)可分节点流,处理流。
- 节点流:可从某个特定节点读写数据 FileReader就是一类、
- 处理流:对一已存流进行连接封装,使用封装的的流的功能实现IO 如BufferedReader是对Reader进行封装使用的。
常见的节点流:
- 节点流:FileInput/FileOutput Stream,File Reader/Writer
- 字符串:String Reader/Writer
- 数组流:Array Input/Output Stream/Reader/Writer
- 管道流:PipedInput/Output Stream/Reader/Writer
常见处理流:
- 缓冲流:Buffered InputStream/OutputStream/Reader/Writer (缓冲流可以避免磁盘重复io 但是要记得flush、close)
- 转换流:InputStreamReader,OutputStreamWriter (用于字节流与字符流的转换)
- 数据流:Data Input/Output Stream (读写基础数据)
流关闭顺序:
- 一般情况下先打开的后关闭,后打开的先关闭
- 存在依赖情况下,先关闭依赖其它流的流,再关闭被其它流依赖的流
- 对于处理流而言,可以之关闭处理流,处理流封装的节点流会在处理流关闭时调用关闭方法进行关闭