考试首页 | 考试用书 | 培训课程 | 模拟考场 | 考试论坛  
全国  |             |          |          |          |          |         
  当前位置:计算机等级 > 二级考试 > Java语言程序设计 > 考试辅导 > 文章内容
  

全国计算机等级考试二级Java重点内容(4)

中华IT学院   【 】  [ 2016年9月17日 ]

  基本类型的序列化 writeInt()  readInt()

  照片的序列化  ImageIO.read()  ImageIO.write()

  1 字符串的序列化 编码问题

    println()

    readLine()

  2 对象的序列化

    readObject()

    writeObject()

  常见文本文件读取方式

  对象的序列化

  流的总结

  广义上: 数据转换为byte 序列 都是序列化

  int long 可以序列化 -> 拆分

  String   可以序列化 --> 编码

  Image    可以序列化(.png) -> 图片的压缩格式

  对象(属性)可以序列化 对象编码为 byte 序列

7 什么是对象的序列化: 将Object转换为byte序列,就是序列化,反之叫反序列化

  为什么要序列化: 为了在byte流中存储对象

 如何序列化: 使用writeObject(Object)/readObject()

 1) 序列化流, 是过滤流

    ObjectOutputStream writeObject(Object) 序列化对象

    ObjectInputStream readObject() 对象的反序列化

 2) 序列化接口: 对象必须实现"序列化接口"才能进行 "序列化"

   否则出现不能序列化的异常!

 3) JavaBean 规范, 必须实现Serializable接口

   Java API中的类大多是Java Bean, 基本都实现了Serializable

 序列化的应用:

8 浅层复制与深层复制

 1) Java的默认复制规则是浅层复制, 性能好, 隔离性差

   浅层复制现象, 只复制第一层对象

 2) 利用序列化实现深层复制

.Java IO 总结

 1)是一种数据操作模型: 把任何数据都作为Byte的有序集合看待

  逐一处理的方式方式叫做流.

  Java 流模型, 是byte by byte 是数据集合

   data   :  41 42 00 00 ff ff d6 d0

   index  :   0  1  2  3  4  5  6  7  8

   pointer:   ^

    RandomAccessFile 只能操作文件, 只能处理基本类型

   节点流: 流开始和结束的地方

  过滤器: 基本流的功能扩展

  字节流: 每次处理一个byte

  字符流: 每次出来一个char

  ObjectInputStream in = new ObjectInputStream(new CipherInputStream(new FileInputStream(file)));

  Object obj = in.readObject();

  CipherInputStream in = new CipherInputStream(new FileInputStream(file));

  img = ImageIO.read(in);

   装饰器模式: 流的API是按照装饰器模式设计的

  InputStream 最基本的输入流操作模型, 是抽象类(read()是没有实现的)

  |-- FileInputStream 实现了在文件上读取的方法 read(), 节点流

  |-- ByteArrayInputStream 实现了在数组里读取的方法 read()

  |-- FilterInputStream 过滤流,包装在一个基本流外部,提供功能扩展

  |    |-- DataInputStream 为基本流扩展了基本数据类型读取

  |    |    readInt() readDouble()...方法的底层是read()

  |    |-- BufferedInputStream 为基本流提供缓冲处理

  |    |-- CipherInputStream 解密输入流, 知道就行

  |    |-- ZipInputStream 解压输入流, 知道就行

  |-- ObjectInputStream 对象输入流, 也是过滤器

 

 OutputStream 最基本的输出流操作模型,是抽象类(write()是没有实现的)

  |-- FileOutputStream 实现了在文件上写出的方法 write(), 节点流

  |-- ByteArrayOutputStream 在变长数组上实现了write() 方法

  |-- FilterOutputStream

  |    |-- DataOutputStream 基本类型输出

  |    |

  |    |-- BufferedOutputStream 缓冲输出

  |    |-- CipherOutputStream 加密输出

  |    |-- ZipOutputStream 压缩输出

  |-- ObjectOutputStream 对象输出流

 

 字符流, 每次处理一个字符

 Reader 抽象类, 定义了抽象方法read(), 每次读取一个字符

  |-- InputStreamReader 也是过滤器, 将byte序列解码为char序列

  |      底层也是依赖基本的byte输入流

  |-- BufferedReader (Scanner) 是字符流过滤器,

  |     有常用的文本读取方法readLine()

  |-- FileReader 底层是 FileInputSream + InputStreamReader

  |     不能指定读取文件的字符编码

首页 1 2 3 尾页
分享到:
本文纠错】【告诉好友】【打印此文】【返回顶部
将考试网添加到收藏夹 | 每次上网自动访问考试网 | 复制本页地址,传给QQ/MSN上的好友 | 申请链接 | 意见留言 TOP
关于本站  网站声明  广告服务  联系方式  站内导航  考试论坛
Copyright © 2007-2013 中华考试网(Examw.com) All Rights Reserved