IO流
来源:互联网 发布:手机淘宝注册 编辑:程序博客网 时间:2024/06/16 13:34
流(stream):在目的地和源之间建立一根管道,数据通过管道流向目的地
细管道是按照字节传输的 (把数据拆分成byte来发送)
粗管道是按照字符传输的
分辨是在记事本里面如果能够读的懂就是字符流
不能够用记事本读懂的是字节流,也就是二进制
流是有方向的:始终是站在程序的角度
当源是程序的时候,是输出流
细管道—字节输出流–>OutputStream
粗管道—字符输出流–>Writer
当目的地是程序的时候,是输入流
细管道—字节输入流–>InputStream
粗管道—字符输入流–>Reader
字符流:面向字符的流,以字符为单位数日、输出数据,常用来操作字符类文件
对象流:面向对象的流,将内存中的对象进行序列化,或把序列化文件恢复成内存中的对象。可以长久的保存对象的信息及状态。
字节流:
所有面向字节的流都继承与InputStream类(输入流)或OutputStream类(输出流),这两个类都是抽象类,他的实现是由他的子类去实现,实现方式为目的地为哪里就用什么。比如,目的地是文件,则是FileInputStream
BufferedReader:
直接将另一根管子与这个对接
对象流在本质上是属于字节流的
对象的序列化与对象的反序列化
对象序列化:将对象以二进制流的形式进行输出
反序列化:将输入的二进制流转化为对象
序列化的类:ObjectOutputStream
对象序列化:
被序列化的类,必须实现Serializable这个接口,这个接口是一个标记接口,没有任何方法
ObjectOutputStream在设计时就是用来被对接的
处理流,接点流
反序列化:
从文件中把数据读出来,一来就是一个对象
这是第三种产生对象的方式
此时的读取文件是ObjectInputputStream
流的分类:
按照数据流的方向分为:
输入流和输出流
按照处理数据的最小单位不同分:
字节流和字符流
byte:OutputStream和InputStream
char:Writer和Reader
按照流的功能分:
节点流和处理流
流模型
流分类
方向
输入
输出
管道粗细
字符
字节
管道作用
节点流:File文件流
处理流:object对象流—–>序列化和反序列化以及serializalble接口
流类型
InputStream
下面的子类
OutputStream
下面的子类
Reader
下面的子类
Writer
下面的子类
常用类
File
表示文件或文件夹
文件分隔符
properties
map集合,kv对存放数据
对属性文件的操作
Load:读文件
store:写文件
流操作步骤
1、选择管道(字节/字符,输入/输出,另一端点)——>得到应该使用哪根管道
2、new出管道对象
3、操作管道(输入流—->read 输出流—->write 不管是字节流还是字符流)
4、关闭管道,close方法
- 【IO流】IO框架
- IO流呀IO流
- 字符IO&数据流IO&对象流IO
- io流
- io流
- IO流
- IO流
- IO 流
- IO流
- io流
- IO流
- io流
- IO流
- IO流
- IO流
- IO流
- IO流
- IO流
- 基于MT7688模块的开发笔记12——给MT7688开发板添加WiFi功能
- Linux链接脚本学习--lds
- 如何高效地阅读文献?
- 基础配置
- Android 开源项目浅读-------SwipeMenuListView-重写,第六章,缓慢收回
- IO流
- 在 Xcode 7 中安装 Alcatraz,再次安装vvdocumenter
- WampServer 2.5设置外网访问/局域网手机访问(403 Forbidden错误解决方法)
- Qt quick 实现bootstrap界面之标签控件
- Spark-项目中分析日志的核心代码
- Java 静态变量,静态函数,静态代码块,构造代码块
- Meanshift--聚类算法
- Ubuntu14.10 更新源
- 浅谈null