我的学习阶段是跟着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学习之路——基础阶段二(第八篇)的更多相关文章

  1. #Java学习之路——基础阶段二(第一篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  2. #Java学习之路——基础阶段二(第九篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  3. #Java学习之路——基础阶段二(第二篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  4. #Java学习之路——基础阶段(第八篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  5. #Java学习之路——基础阶段二(第三篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  6. #Java学习之路——基础阶段二(第十篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  7. #Java学习之路——基础阶段二(第七篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  8. #Java学习之路——基础阶段二(第六篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  9. #Java学习之路——基础阶段二(第五篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

随机推荐

  1. InnoDB基本特性

    Ⅰ.double write 目的:保证数据写入的可靠性 小知识: 什么是partial write? 16k的page只写入了4k,6k,8k,12k就断掉了的情况 corrupt的page就是pa ...

  2. java编程思想-第13章-某些练习题

    . 匹配任意一个字符 * 表示匹配0个或多个前面这个字符 + 表示1个或多个前面这个字符 ? 表示0个或1个前面这个字符 ^ 表示一行的开始 ^[a-zA-Z] :表示开头是a-z或者A-Z [^0- ...

  3. BZOJ_5055_膜法师_树状数组+离散化

    BZOJ_5055_膜法师_树状数组+离散化 Description 在经历过1e9次大型战争后的宇宙中现在还剩下n个完美维度, 现在来自多元宇宙的膜法师,想偷取其中的三个维度为伟大的长者续秒, 显然 ...

  4. ISCC 2018 (Please give me username and password)

    做过iscc 2018之后有了很多的感触,也有更多的了解自己的不足之处,整理了一下web的wp, 为了保证各位小伙伴的阅读质量,我将会把wp以每一道题一个博文的形式写出来,希望能够帮助到你们 其中的步 ...

  5. 【SAP业务模式】之STO(一):业务背景和前台操作

    所谓STO即两个关联公司之间的库存转储交易,一家公司发出采购订单向另一家公司做采购,然后在做发货.如此之后,两家公司有相应应收应付的票据,以及开票和发票校验等动作. STO分为一步法与两步法,因为一步 ...

  6. 机器学习中的范数规则化-L0,L1和L2范式(转载)

    机器学习中的范数规则化之(一)L0.L1与L2范数 zouxy09@qq.com http://blog.csdn.net/zouxy09 今天我们聊聊机器学习中出现的非常频繁的问题:过拟合与规则化. ...

  7. 干货,一文带你超详细了解 Filter 的原理及应用

    提出问题 1.我们在访问后台很多页面时都需要登录,只有登录的用户才能查看这些页面,我们需要   在每次请求的时候都检查用户是否登陆,这样做很麻烦,有没有一种方法可以在我们请求之   前就帮我们做这些事 ...

  8. java 理解如何实现图片验证码 傻瓜都能看懂。

    先代码后解释: 只要把代码复制到你的项目中就可以了. 代码: 验证码工具类: package cn.happy.util.imagesVerTion; /** * Author: SamGroves ...

  9. Netty4.x整合SpringBoot2.x使用Protobuf3详解

    前言 本篇文章主要介绍的是SpringBoot整合Netty以及使用Protobuf进行数据传输的相关内容.Protobuf会介绍下用法,至于Netty在netty 之 telnet HelloWor ...

  10. 腾讯视频国际版(Android)电量测试方法研究与总结

    本文由云+社区发表 作者:腾讯移动品质中心TMQ 1.研究背景: 在2017年Google I/O大会上,Google发布了Google Play管理中心的新功能:Android vitals.当ap ...