流的概念分类
2016-05-18 19:19
176 查看
基本的输出流类
java.io.OutputStream 包括write、flush、close基本方法
flush刷新输出流:强迫缓冲的流发送数据,即使缓冲区还没满,以此来打破死锁状态。
如果未关闭一个流,则可能会泄露文件句柄、网络端口和其他资源。在finally中关闭流
基本的输入流类
java.io.InputStream 包括read、skip、available、close、mark、reset、markSupported基本方法
skip()跳过数据
available确定不阻塞的情况下有多少个字节可以读取
mark标记流的当前位置,markSupported验证是否允许标记
reset重置到之前标记的位置
缓冲流
BufferedOutputStream类将写入的数据存储在缓冲区中,直到缓冲区满或刷新输出流;BufferedInputStream类也有一个作为缓冲区的保护字节数组,名为buf。当调用某个流的read方法是,它首先尝试从缓冲区获得请求的数据,只要当缓冲区没有数据时,流才从底层的源中读取数据。
缓存可以提升性能
瓶颈往往是网络传送数据的速度,而不是网络接口向程序传送数据的速度或程序运行的速度。
数据流
DataInputStream和DataOutputStream类提供了一些方法,可以用二进制的格式读写Java的基本数据类型和字符串。所用的二进制格式主要用于在两个不同的Java程序之间交换数据(可以通过网络连接、数据文件、管道或者其他中间介质)
输出流包括了writeBoolean/writeByte/writeShort等方法
输入流包括了readBoolean/readByte/readChar等方法
阅读器和书写器
最主要的子类是InputStreamReader和OutputStreamWriter,都可以指定编码方式读写流
BufferedReader和BufferedWriter为以上的过滤器类,但是这两个基于字符,上面两个基于字节。
相关文章推荐
- 回归神经网络RNN(Recurrent Neural network)
- 回归神经网络RNN(Recurrent Neural network)
- 回归神经网络RNN(Recurrent Neural network)
- 回归神经网络RNN(Recurrent Neural network)
- java异常处理学习总结
- 解决多点透视问题
- 实用小工具---显示图像点坐标和点的rgb值
- 用CTime类得到当前日期、时间、星期,格式化
- linux之文件批量重命名
- 阿里云服务器centos部署web环境的步骤详解
- PythonOpenCV:MLP用于最近邻搜索
- Nginx upstream schedule strategy
- Android 通知栏Notification的整合全面学习
- POI2014 题解
- UICollectionView reloadData不走cellForRowAtIndexPath的问题
- 科学计数法
- C++版的LLC
- [C++]STL-空间配置器(一)
- HTML <html> manifest 属性
- YII2框架连接数据库操作