我的学习阶段是跟着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. Mabits简单应用 2017.8.3

    http://www.cnblogs.com/wushiqi54719880/archive/2011/07/26/2117601.html

  2. Intellij IDEA 安装lombok及使用详解

    项目中经常使用bean,entity等类,绝大部分数据类类中都需要get.set.toString.equals和hashCode方法,虽然eclipse和idea开发环境下都有自动生成的快捷方式,但 ...

  3. Python3 requests与http.cookiejar的使用(cookie的保存与加载)

    在学习Python之余,发现Python2与Python3 有很大的变化,之前使用urllib和cookielib来保存cookie,发现很繁琐,于是改用requests.发现cookielib在3. ...

  4. 好代码是管出来的——Git的分支工作流与Pull Request

    上一篇文章介绍了常用的版本控制工具以及git的基本用法,从基本用法来看git与其它的版本控制工具好像区别不大,都是对代码新增.提交进行管理,可以查看提交历史.代码差异等功能.但实际上git有一个重量级 ...

  5. java集合框架之ArrayList

    参考http://how2j.cn/k/collection/collection-arraylist/363.html 使用数组的局限性 一个长度是10的数据:Hero[] heroArr=new ...

  6. 通过jenkins持续集成 github中的代码到 服务器。

    前言 最近自己在探索springboot框架,了解到 jenkins 具有 自动我github 上带项目部署到 tomcat 中.于是决定先搭建一个jenkins 环境在继续研究. Jenkins简介 ...

  7. Java异常简介、异常捕获还是上抛总结

    概要 本章对Java中的异常进行介绍.内容包括:1.Java异常简介2.Java异常框架 一.Java异常简介 Java异常是Java提供的一种识别及响应错误的一致性机制. Java异常机制可以使程序 ...

  8. Dubbo原理和源码解析之标签解析

    一.Dubbo 配置方式 Dubbo 支持多种配置方式: XML 配置:基于 Spring 的 Schema 和 XML 扩展机制实现 属性配置:加载 classpath 根目录下的 dubbo.pr ...

  9. SQL Server事务 事务日志

    事务 (SQL Server) 一.事务概念    事务是一种机制.是一种操作序列,它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行.因此事务是一个不可分割的工作逻辑单元.在数据库系统 ...

  10. Python从入门到放弃

    计算机基础 01 计算机基础之编程 02 计算机组成原理 03 计算机操作系统 04 编程语言分类 Python解释器 05 Python和Python解释器 06 执行Python程序的两种方式 0 ...