当前位置: 首页 > news >正文

java 流关闭顺序_JAVA的节点流和处理流以及流的关闭顺序

节点流:可以从或向一个特定的地方(节点)读写数据。如FileReader.

处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。如BufferedReader.处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接。

JAVA常用的节点流:

文 件   FileInputStream FileOutputStrean FileReader FileWriter

对文件进行处理的节点流。

字符串    StringReader StringWriter

对字符串进行处理的节点流。

数 组  ByteArrayInputStream ByteArrayOutputStreamCharArrayReader CharArrayWriter

对数组进行处理的节点流(对应的不再是文件,而是内存中的一个数组)。

管 道 PipedInputStream PipedOutputStream PipedReaderPipedWriter

对管道进行处理的节点流。

常用处理流(关闭处理流使用关闭里面的节点流)

缓冲流:BufferedInputStrean BufferedOutputStream BufferedReader BufferedWriter

---增加缓冲功能,避免频繁读写硬盘。

转换流:InputStreamReader OutputStreamReader

实现字节流和字符流之间的转换。

数据流 DataInputStream DataOutputStream 等-

提供将基础数据类型写入到文件中,或者读取出来.

流的关闭顺序

一般情况下是:先打开的后关闭,后打开的先关闭

另一种情况:看依赖关系,如果流a依赖流b,应该先关闭流a,再关闭流b。例如,处理流a依赖节点流b,应该先关闭处理流a,再关闭节点流b

可以只关闭处理流,不用关闭节点流。处理流关闭的时候,会调用其处理的节点流的关闭方法。

注意:

如果将节点流关闭以后再关闭处理流,会抛出IO异常。

相关文章:

  • java 多层结构故障_多层构架在实践中一些问题
  • java项目提高安全性_Java线程安全与程序性能
  • mysql 获取真是执行计划_Oracle 从缓存里面查找真实的执行计划
  • mysql 越文_mysql数据库乱码之保存越南文乱码解决方法_MySQL
  • java发布_java项目发布的方式
  • python分享的代码怎么写_【图片】分享一段功能非常简陋的python代码实现下载free种【pt吧】_百度贴吧...
  • android js调用java_如何在Android平台上使用JS直接调用Java方法
  • python实现并发和并行的方式有哪些_Python中的并行和并发是什么
  • java a a=null_面试题((A)null).fun()——java中null值的强转
  • java获取hashcode_java identityHashCode 和 hashCode
  • django mysql 加锁_Django数据库事务和死锁
  • 二叉树某结点的路径java_java二叉树和为某一个值的路径如何实现?思路分享
  • java清空JTextArea文本内容_java – 如何在JTextArea中更改文本的位置
  • java设计模式观察者模式吗_JAVA设计模式---观察者模式
  • java 简易的资源池_资源池设计模式 (Resource Pool)和数据池的简单实现
  • 【译】JS基础算法脚本:字符串结尾
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • Angular4 模板式表单用法以及验证
  • Go 语言编译器的 //go: 详解
  • java取消线程实例
  • MySQL几个简单SQL的优化
  • Redis 中的布隆过滤器
  • spark本地环境的搭建到运行第一个spark程序
  • 简析gRPC client 连接管理
  • 前端技术周刊 2019-01-14:客户端存储
  • 如何解决微信端直接跳WAP端
  • 一起参Ember.js讨论、问答社区。
  • 一些关于Rust在2019年的思考
  • 原生Ajax
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • 整理一些计算机基础知识!
  • !$boo在php中什么意思,php前戏
  • (+4)2.2UML建模图
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (JS基础)String 类型
  • (二)springcloud实战之config配置中心
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (十一)手动添加用户和文件的特殊权限
  • (一)基于IDEA的JAVA基础12
  • (已解决)什么是vue导航守卫
  • (转)c++ std::pair 与 std::make
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)LINQ之路
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .equals()到底是什么意思?
  • .net framework profiles /.net framework 配置
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .NET多线程执行函数
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比