IO流
来源:互联网 发布:win7系统摄像头软件 编辑:程序博客网 时间:2024/06/01 11:18
IO流要自己去记得东西比较多,如果记得不熟很容易混,昨天学了一天的IO流,但今天感觉又有点忘了,今天系统的总结一下:
一:IO流分类
IO流分类有好多种,但我认为重要的需要记住的就一种就可以:即
字节流:一次读取1个 字节
字符流:一次读取2个字节
区别:字符流只能对文本文件进行读取,它比字节流对文本文件的操作效率高,字节流主要是对非文本文件(如一些媒体文件 :图片,电影,音乐等)进行操作的
注意:字节流可以对所有类型的文件进行操作。如果用字节流操作文本文件,没有字符流操作文本文件 效率高。
二:IO流的体系结构:
只需记住一张图即可
三:需要知道序列化和反序列化
序列化:将内存中的I对象以二进制形式永久的保存到磁盘中去
简单来说序列化就是一种用来处理对象流的机制。所谓对象流也就是将对象的内容进行流化,流的概念这里不用多说(就是I/O)。我们可以对流化后的对象进行读写
操作,也可将流化后的对象传输于网络之间(注:要想将对象传输于网络必须进行流化)!在对对象流进行读写操作时会引发一些问题,而序列化机制正是用来解决这些问题的
反序列化:将磁盘中的保存的对象读取
四:转换流也需要了解一下吧
转换流:InputStreamReader 和OutputStreamWrite
转换流主要是进行编码和解码操作的:
编码:字符串到字节数组的过程
解码:字节数组到字符串的过程
五:java.io.File类,用于表示文件或者目录,能进行新建、删除、重名名等操作,File对象但不能对文件内容进行操作,如果要对文件内容进行操作,需要使用IO流来完成,通常将File对象和IO流对象配合使用,将File对象作为参数传递给IO流的构造器使用。
最后说一下read和readLine()的区别吧,因为有时候总是分不清楚,read方法当读到没有数据时返回-1,而readLine()是一个阻塞函数,当没有数据读取时,就一直会阻塞在那,而不是返回null;因为readLine()阻塞后,System.out.println()这句根本就不会执行到,所以在接收端就不会有东西输出。要想执行到System.out.println(),一个办法是发送完数据后就关掉流,这样readLine()结束阻塞状态,而能够得到正确的结果,但显然不能传一行就关一次数据流;另外一个办法是把System.out.println()放到while循环体内也可以。
个人感觉IO流记住这些已经可以够用的了
- 【IO流】IO框架
- IO流呀IO流
- 字符IO&数据流IO&对象流IO
- io流
- io流
- IO流
- IO流
- IO 流
- IO流
- io流
- IO流
- io流
- IO流
- IO流
- IO流
- IO流
- IO流
- IO流
- JFileChooser实现对选定文件夹内图片自动播放
- IOS开发中制作属于自己的静态库.a、资源库.bundle、.framework
- ZOJ 3960 What Kind of Friends Are You? 题解
- 堆和栈的概念和区别
- RxAndroid使用解析以及使用场景分析
- IO流
- Leetcode——134 Gas Station
- Error configuring application listener of class com.sun.faces.config.ConfigureListener
- python学习笔记
- 论文学习笔记:《Rich feature hierarchies foe accurate object detection and semantic segmentation》
- Universal Links踩坑
- 【bzoj3295】[Cqoi2011]动态逆序对
- 自己的小窝
- UVa 1252