应用场景
- 文件传输(复制文件,删除文件或文件夹,文件改名等)
- 网络传输(从服务器进行数据读取,上传下载等)
- 硬盘数据的存储
划分流的分类形式
- 输入流:
① InputStream 抽象类(子类:FileInputStream/BufferedInputStream)
② Reader 抽象类(子类:InputStreamReader/BufferedReader)
- 输出流:
① OutputStream 抽象类(子类:FileOutStream/BufferedOutputStream)
② Writer 抽象类(子类:OutputStreamWriter/BufferedWriter)
流关闭的条件
输入流:
- 当前对象不再接收数据,即可进行关闭
输出流:
- 输出的内容为空时(=null)
- 输出的对象没关闭时(!=null)
- 关闭之前清空缓存区(调用flush()方法)
修改建议
1、 输入流比较简单,只需要在调用完方法之后,进行关闭
2、 如果可以,一定要判断一下输出的数据内容是否已经为空,为空后再关闭,一定要调用flsh之后再关闭
3、 无论输出流还是输入流,最好的在进行关闭之前,都判断一下是不是不!=null,这样代码不易出错,当然定义的时候赋值要为null
4、 无论输入流还是输出流,可在出口处统一关闭