RandomAccessFile
--------------------
随机访问文件。
1.Object --> java.io.RandomAccessFile 它不流体系中的一员。
2.该对象中封装了字节流,同时还封装了一个缓冲区(字节数组),通过内部的指针来操作数组 中的数据。
3.实现接口:DataInput DataOuput
4.seek(int long);
定位下表
5.skipBytes(int bytes);
跳过字节数
6.getFilePointer();
获取当前指针的位置
7.在进行对象实例化时,必须要指定的该对象的操作模式“rw”"r"等
8.可以用于多线程的下载,也就是通过多线程往一个文件中同时存储数据覆盖。
对象流&串行化/序列化
--------------------
1.ObjectInputStream
2.ObjectOutputStream
3.可以通过这两个流对象直接操作已有对象,并将对象进行本地持久化存储。存储后的对象可以进行网络传输
4.Serializable该接口其实就是一个没有方法的标记接口,用于给类制定一个UID,该UID是用过类中的可序列号成员的数字签名运算得出来的一个Long型的值。
5.如果被序列化的对象需要被不同的类版本所兼容,可以在类中自定义UID。
定义方式: static final long serialVersionUID= xxxxxxxL
6.对应静态的成员变,不会被序列化。可以通过transient关键字修饰。
7.通常,这两个对象成对使用。
JavaBean实现串行化需要实现Serializable接口,标志性接口。
------------------------------------------------------
1.java.io.Serializable
2.标识行接口,没有任何方法。
3.JVM需要判定该接口做串行化处理。
4.对象的序列化是基于字节的,不能使用Reader和Writer等基于字符的层次结构