#Java学习之路——基础阶段二(第八篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容。
前言:此随笔主要是Java基础中的基础,相信大家对这方面肯定有着自己的理解和认识,具体详解可以参照万能的baidu,有的我就一笔带过,希望在我的学习之路上能够有大牛进行指导,也有更多的小伙伴共勉。
1.缓冲流
在学习IO之后,接触到在FIleWriter和FileOutputStream中间接了解到了缓冲区,如果想再之后对文件就行修改,那么就可以flush对对象进行刷新,从而可以对流对象重新编写,今天学的依然是增强流操作,缓冲流也叫高效流,是对四个FileXXX流对增强。
构造方法:
BufferedInputStream,字节缓冲输入流
BufferedOutputStream:字节缓冲输出流
BufferedReader:字符输入流
BufferedWriter:字符输出流
这里的字符输入流和字符输出流有特有对方法一个是readline读取下一行用在BufferedReader一个是newline换行用在Bufferedwriter直接用缓冲流对象调用即可。
2.转换流
字符集:也叫编码表,是一个系统支持对所有字符对集合,包括各个国家对文字,标点符号,图形符号,数字等。。。
关于编码就会由于编码的字符集不对应导致不能更转换,显示乱码。
这里引入InputStreamReader 是Reader对子类
构造方法:
·InputStreamReader有两个构造方以一个是创建默认字符集的字符流,一个是创建指定字符集的字符流;前面是引入的File对象,后面是读取的参数字符集格式。
而OutputStreamWriter是Writer的子类,是字符流到字节流的桥梁,使用指定的字符集将字符编码为字节,他的字符集可以由名称来指定的也可以接受自定义的默认字符集。
构造方法:
·outputStreamWriter也有两个构造方法,和输入流的换转换流一样的道理。
3.序列化流
而对于序列化机制,使用一个字节序列表示一个对象,该字节序列包含对象对数据等等信息,相当于文件中持久保存了一个对象的信息。
ObjectOutputStream类是将 Java对象的原始数据类型写出到文件实现对象的持久存储。
构造方法:
·ObjectOutoutStream创建一个指定的OutputStream的ObjectOutputStream对象。
创建一个FileOutputStream对象传入到ObjectOutputStream中对该对象写入到指定的FileOutputStream对象中。
序列化操作,必须要满足两个条件,一个是实现Serializable接口,是一个标记接口,如果不实现此接口,将不会进行任何序列化和反序列化操作。
第二个要求是必须要能够序列化,如果有不能够序列化操作的必须注明是瞬态的,使用transient关键词修饰。
这里用到的方法是writeObject将指定对象写出。
而如果要读取一个序列化的文件必须要反序列化,就要用到ObjectInputStream。将序列化对象反序列化,那么用到的readObject方法来进行读取对象。
这里我们要找到对象的.class文件来对对象进行反序列化。这里有个捕获不到异常,那么就会在使用try catch中捕获异常如果没有找到对应的.class文件那么就会输出显示没有找到。
另外还有一种反序列化对象,如果能找到.class文件不能对序列化文件进行修改,如果修改也会操作失败,是序列版本号异常。发生这个异常的原因:
该类的序列号相对于六种读取秒数类的版本号不相同、该类包含未知数据类型、该类没有可访问的无参数构造方法。
Serualizable会对给序列化的类提供一个序列化版本号。serialVersionUID目的在于验证序列化的对象和对应类是否版本匹配。可以在定义要序列化的类中加入版本号。
4.打印流
在PrintStream类中有print和println方法。
构造方法就是PrintStream创建一个新的打印流用指定的文件名。然后通过setOut来改变打印流流向。
#Java学习之路——基础阶段二(第八篇)的更多相关文章
- #Java学习之路——基础阶段二(第一篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
- #Java学习之路——基础阶段二(第九篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
- #Java学习之路——基础阶段二(第二篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
- #Java学习之路——基础阶段(第八篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
- #Java学习之路——基础阶段二(第三篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
- #Java学习之路——基础阶段二(第十篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
- #Java学习之路——基础阶段二(第七篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
- #Java学习之路——基础阶段二(第六篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
- #Java学习之路——基础阶段二(第五篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
随机推荐
- VM虚拟机安装centos详细图文教程
本教程贴,采用VM虚拟机进行安装, Ps:不懂VM使用的,可以百度一下 第一步,启动虚拟机,并进行新建---虚拟机·· 选择 从镜像安装,吧里有6.3镜像下载的链接的 然后, 下一步 . 选择客户机版 ...
- 火狐浏览器插件--xpath利器
以前在做web自动化的时候,免不了要找定位啊什么的.一层层找下来太痛苦了,时间也浪费了一天写不了啥.特别是在最开始接触自动化的时候,我们系统坑爹的只支持IE.后来换公司了,在偶然情况下,得知了fire ...
- 学习Javascript数据结构与算法(第2版)笔记(1)
第 1 章 JavaScript简介 使用 Node.js 搭建 Web 服务器 npm install http-server -g http-server JavaScript 的类型有数字.字符 ...
- 将外部dwg图纸中指定带属性的块插入到当前图纸中
static void InsertBlock() { //获取要插入的块名 TCHAR str[40]; acedGetString(Adesk::kFalse, _T("\n请输入要插入 ...
- BZOJ_2049_[Sdoi2008]Cave 洞穴勘测_LCT
BZOJ_2049_[Sdoi2008]Cave 洞穴勘测_LCT Description 辉辉热衷于洞穴勘测.某天,他按照地图来到了一片被标记为JSZX的洞穴群地区.经过初步勘测,辉辉发现这片区域由 ...
- BZOJ_2662_[BeiJing wc2012]冻结_分层图最短路
BZOJ_2662_[BeiJing wc2012]冻结_分层图最短路 Description “我要成为魔法少女!” “那么,以灵魂为代价,你希望得到什么?” “我要将有关魔法和奇迹的一切, ...
- 最短路 BZOJ3694 树链剖分+线段树
分析: 树剖裸题,[Usaco2009 Jan]安全路经Travel 的简化版 剖开最短路树,遍历每一条没在最短路树上的边. 这种情况下,有且仅有u到v路径上,出来lca之外的点能够通过这条边到达,并 ...
- 国内第一本micropython的书出版《机器人Python极客编程入门与实战》
第一本micropython的书<机器人Python极客编程入门与实战>. 购买地址:https://item.taobao.com/item.htm?spm=2013.1.w4018-1 ...
- iOS 支付(含支付宝、银联、微信)
资料 支付宝 //文档idk都包含了安卓.iOS版 银 联 银联官网资料 Demo Demo给了一个订单号,做测试使用,若出现支付失败什么的,可能是已经被别人给支付了,或者是服务器订单过期了 ~ 一. ...
- 在weblogic上部署遇到的问题总结
最近在weblogic上发布自己的项目,但是当调用程序服务时却报错了.于是查看了错误日志. 错误日志如下: Root cause of ServletException. java.lang.Link ...