1.请描述标准输出流和字节打印流的区别?2.请描述字节打印流和字符打印流的区别?
(1) 标准输出流没有构造参数 字节打印流可以传File\OutPutStrem\String类型参数
(2) 字节打印流打印字节,字符打印流打印字符,
字符打印流可以将字节打印流转为字符打印,而字节打印流不能将字符打印流转化
3.为什么会出现打印流,相比较普通的流有什么好处?
(1)普通的流在打印的时候较为麻烦需要变量接受,或者创建数组;而打印流只需要调用方法即可,且打印流可以自动刷新换行,操作更简便
(2)字节打印只能打印字节数组/字节,字符打印只能打印char数组/String/int
而字符打印可以打印各种类型
4.什么是序列化编号,Java默认的处理方式是什么,会出现 什么问题,怎么解决这个问题?
(1)当一个类实现Serializable接口时,就会有一个public static final int 的序列化Id值
是根据类中的信息计算出来的值
(2)java默认的处理方式是,当改变实现序列化接口的类的属性时,会重新创建一个序列化Id值
而在java进行反序列化的时候,如果保存在文件中的序列化Id和类中的序列化ID值不同时,就会抛出异常
InvalidClassException
(3)解决办法:需要自己定义序列化id值,这个在修改类中属性的时候,java就不会重新创建
5.Properties集合的作用 ?
集合与Io互相传输
通过setProperties() 将元素存放到集合中
load(..)将输入流中定义的文件数据以键值对的方式存储到集合中
getProperties()通过key值获取对应的value
store(..) 将集合元素输出到输出流定义的文件中 |