IO流 方法 及使用 【最全!】

基本输入类型流

可以读写基本数据类型

数据输入流:DataInputStream
DataInputStream( InputStream in )
数据输出流 : DataOutputStream
dataOutputStream( OutputStream out )
特点:
1,该流是一个字节流,可以读写字节的同时,还能读写基本数据类型
2,通过数据类型输出流写入到文件中,使用文本文件打开时不能阅读,提高了基本数据安全性
3,读的时候必须和写的顺序保持一致,提高基本数据类型在文件中保存的安全性

万能输出流PrintWriter

PrintWriter / PrintStream
概述: 向文本输出流打印对象的格式化表示形式。此类实现在 PrintStream 中所有Print方法。
特点:
1,只能写数据,不能读数据
2,可以操作任意类型的数据
3,如果启动了自动刷新,能自动刷新
4,如果启动了自动刷新,则只有在调用 println 、 printf 或 format的其中一个方法才能完成此操作

java.util.InputMisnatchException 输入小数

随机访问文件RandomAccessFile

RandomAccessFile概述:此类的实例支持对随机访问文件的读取和写入

特点
1,RandomAccessFile类不属于流,是Object类的子类
2,包含了InputStream和OutputStream的功能。支持对随机访问文件的读取和写入。
3,能够读写基本类型
4,支持随机访问文件的读取和写入 seek / getFilePointer
long getFilPointer ( )
long length ( )
void seek(long pos)
void setLength( long newLength)

序列化流和反序列化流

ObjectOutputStream 序列化流 将java对象的基本数据类型和图形写入OutputStream

ObjjectInputStream 反序列化流 读取(重构)对象,通过流中使用文件可以实现对象持久存储。

如何实现序列化?
类通过jiava.io.Serializable 接口以启用其序列化功能
未实现此接口的类型将无法使其任何状态序列化 或反序列化,该接口没有任何方法,是一个标记接口
未实现序列化抛出为序列化异常; NotSerializableException
序列化数据后,再次修改类文件,读取数据会出现问题,如何处理?
实现Serializable 接口 ,
使用transient关键字声明 , 不需要序列化的成员变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值