知识重要,知道怎么学习知识更重要!
文章采用先大模块介绍,然后小模块细化的方式写作。
首先来看看原版解释:
从这个我们可以知道系统输入输出主要通过数据流,序列化,文件系统。
然后让我们点进去瞅瞅:
看一下对本包的解释:
前面和上面意思一样,后面说的是如果一不小心传递了一个空参数给这个包里的任何构造器或者方法(无论是在接口还是在包里的),都会导致一个空指针异常,也就是说,这个包不允许传递空参数。
在这下面还有一部分:
说的是对于不信任的数据反序列化是很危险的,应该避免,或者验证后再反序列化。这个是针对对象的,看来序列化和对象有关。
可以去下面链接地址看一下具体介绍。
接口
类
枚举
异常
错误
OK,从总体上了解了io包以后呢,接下来就是从细节上了解了,本次选择选择对象序列化输入输出来讲解。当然,我也是新手,边学便讲,让我们一起探讨如何学习才能更高效更快速。
对象序列化输入输出
首先考虑对象输出(学习总要先有个确定点),即写对象到一个文件中去:
点进去看看:
接着看,下面有个例子:
划重点!!!
我们看构造函数:
接下来我们就测试上面的例子:
打开测试文件一看竟然是乱码,看来对象输出流已经被编码了。那么我们获取一下试试:
这是ObjectInputStream里面的例子:
实现一下试试:
发现正常输出,哈哈,就是刚才保存的日期对象。
至此,我们已经可以初级使用对象输入输出流了,当然还有一些其他功能(例如网络流对象的读写等等)我们可以通过官方文档学习,权威全面。