Java中的I/O流相关知识点

分类:
按照流的流向不同:分为输入流(InputStream)和输出流(OutputStream);
按流中的数据格式不同:分为字节流和字符流,字节流继承于(InputStream)和(OutputStream),字符流继承于(InputStreamReader)和(OutputStreamWriter);
字节流与字符流的相互转换:
字节流转换为字符流:字节输入流转换为字符输入流时,使用InputStreamReader,字节输出流转换为字符输出流时,使用OutputStreamWriter;反之,将字符流转换为字节流就是使用InputStream和OutputStream。
字节流与字符流的区别:
字节流在读取数据时,是按字节读取,读到一个字节就返回一个字节,而字符流在读取数据时使用了字节流读取一个或者多个字节,然后在编码表中查询字符,将查到的字符返回。
Java中的序列化:
如何实现:

只需要将要被序列化的类实现Serializable接口即可。
在看过Serializable接口源码,我们可以知道,这个接口中没有实际需要实现的变量以及方法,因此Serializable接口其实就是在JVM中起到一个标记的作用,告诉系统这个类是需要被序列化的。
为什么要序列化:
经序列化过的类,它的数据以及方法不仅可以长久保持,最关键的是它还可以在网络中传输。
序列化中的注意事项:
在实现了Serializable接口后强烈建议要设置一个serialversionUID参数(也可以不设,但是你必须要到Serializable接口中找到其设置的serialversionUID的默认值,使其保持一致),这个参数在对象被序列化时没有什么关键作用,但是当我们需要把序列化后的数据再转换为对象时,这个serialversionUID参数就显得尤为重要了,serialversionUID参数在对象被序列化的时候就已经被写入到了序列化的数据中,当要反序列化时,系统首先会检查数据中的serialversionUID参数与原对象中的serialversionUID参数是否一致,如果一致反序列化可以继续,如果不一致会抛出异常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值