IO
来源:互联网 发布:axure mac安装教程 编辑:程序博客网 时间:2024/06/08 04:17
1.IO简介
I:input 读 输入流
O:output 写 输出流
流:是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。
即数据在两设备间的传输称为流,流的本质是数据的传输,根据数据传输特性
将流抽象为各种类,方便更直观的进行数据操作。
2.IO分类:
根据处理数据类型不同分为:字符流和字节流
根据数据流流向不同分为:输入流和输出流
字符流的由来:因为数据编码的不同,而有了对字符进行高效操作的流对象。
本质其实基于字节流读取时,去查了指定的码表。
3.字符流与字节流的区别:
1.读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码
表映射,一次可能读多个字节。
2.处理对象不同:字节流能处理所有类型的数据(如图片,avi等)。而字符流只
能处理字符类型的数据。
结论:只要是处理纯文本数据,就优先考虑使用字符流。除此之外多使用字节流
4.输入字节流与输出字节流:
1.输入字节流:inputStream()是所有的输入字节流的父类,是一个抽象类
2.输出字节流:outputStream()是所有输出字节流的父类,是一个抽象类
5.字符流与字节流的转换:
转换流的特点:1.是字符流与字节流的桥梁
2.对读取到的字节数据经过指定编码转换为字符
3.可对读取到的字符数据经过编码转换为字节
何时使用转换流:
1.当字节和字符有转换动作时
2.流操作的数据需要编码或解码时
具体的对象体现:
inputStreamReader:字节到字符的桥梁
outputStreamWriter:字符到字节的桥梁
6.File类:
是对文件系统中文件以及文件夹进行封装的对象,可以通过对象的思想来
操作文件和文件夹。File类保存文件或目录的各种元数据信息,包括文件名,文
件名,文件长度,最后修改时间,是否可读,获取当文件的路径名,判断指定文
件是否存在,获取当前目录中文件列表,创建,删除文件和目录等方法。
7.递归:是指函数/过程/子程序在运行过程中直接或间接调用自身而产生的重入
现象。如同:自己调用自己。
优点:思路清晰,代码少。但是在主流高级语言中(如c语言,pascal语言等)
使用递归算法要耗用更多的栈空间,所以在堆栈尺寸受限制是(如嵌入式系统
或内核态编程),应避免使用。所有的递归算法多可以改成与之等价的非递归
算法。
8.开源:
开放源代码,没有加密
开源数据库:这个数据库没有加密的,代码就是开放的。数据库作用都是用于
动态语言开发的网站。