java初级第18天总结笔记
2016-07-15 18:38
288 查看
一、关闭多个流的方法
需要设置参数:用来接受要关闭的多个流对象
多个流对象--》用容器类型(数组,list,set...)
容器里元素类型--》可以接受所有的流对象(inputStream,outputStream,reader,writer...)
方法中流对象-只会使用流对象-》close
--close方法-来自于超类型-》Closeable
--面向超类型Closeable编程-作为容器类型
--方法内使用容器-不需要增加删除元素--》数组-效率高
--》数组-》代替的类型-》可变参数类型-比数组更灵活-》可以传入1)数组2)数组元素
二、字符缓冲流
BufferedReader 带缓冲字符数组的字节输入流
新增功能(不能多态):readLine()
BufferedWriter 带缓冲字符数组的字节输出流
新增功能(不能多态):newLine()
不能多态-不能面向超类型Reader和writer编程
三、Properties特点
1)实现了map接口
2)继承Hashtable 键值都不为null
3)键与值 只能为字符串,其他类型不能与文件交互
4)存在大量的新增方法,不建议发生多态
与文件交互
a)对应.properties文件
格式:
1)#后面跟注释
2)一行一个键值对(格式:键=值)
Properties新增添加和读取数据的方法(只能是String类型)
Object setProperty(String key, String value)
调用 Hashtable 的方法 put。
String getProperty(String key)
用指定的键在此属性列表中搜索属性。
b)存储:把Properties 对象数据写入到文件。
注意:此时Properties对象必须键值都是String,不然classCastException。
store(OutputStream out, String comments) 采用ISO 8859-1字符集
store(Writer writer, String comments)
c)读取:把文件数据读取到Properties 对象中。
注意:此时会把文件里所有键值对追加放入Properties对象中,不会
清除原有Properties 对象。
load(InputStream inStream) 采用ISO 8859-1字符集
load(Reader reader)
四、转换流(字节流———》字符流)
主要作用:把字节【整数】流转换为字符【字符】流(不能字符转字节流!)
1、OutputStreamWriter
a)可以设置编码字符集
b)带缓冲区-(不能设置大小)
c)进行字节输出流转字符输出流
2、InputStreamReader:字节输入流---转--》字符输入流
a)可以设置解码字符集
b)带缓冲区-(不能+设置大小)
c)进行字节输入流转字符输入流
五、序列化概念
a)序列化(输出):把程序中的数据 (基本类型,引用类型)写出 到一个数据源
b)反序列化(输入):把数据源序列化的数据 读取到 程序中的数据(基本类型,引用类型)
*
*
* 注意:
这里写出的数据不是简单的字符数据是java内部的一种格式,也可以理解写的字节数据,
所以序列化后的数据,不是给人看的,给程序看的!!
序列化的流-(基本类型加字符串序列化)
DataInputStream 可以读入基本类型加字符串的字节输入流
DataOutputStream 可以写出基本类型加字符串的字节输出流
b)基本类型加对象类型序列化
ObjectInputStream 可以读入基本类型加字符串还有对象的字节输入流
ObjectoutputStream 可以写出基本类型加字符串还有对象的字节输出流
注意:
1)读写顺序要一致
2)序列化对象 -》 要实现 序列化接口Serializable(空接口)
3)设置序列化版本-》private static final long serialVersionUID = 1L;
4)序列化类版本 -》控制序列化后的对象的使用版本,防止,版本不一致,序列化类做了更改不能兼容原来的版本,则需要更改版本。
5)无需序列化属性 -》 transient修饰
6)用容器装序列化内容 -》list set map等,方便遍历
需要设置参数:用来接受要关闭的多个流对象
多个流对象--》用容器类型(数组,list,set...)
容器里元素类型--》可以接受所有的流对象(inputStream,outputStream,reader,writer...)
方法中流对象-只会使用流对象-》close
--close方法-来自于超类型-》Closeable
--面向超类型Closeable编程-作为容器类型
--方法内使用容器-不需要增加删除元素--》数组-效率高
--》数组-》代替的类型-》可变参数类型-比数组更灵活-》可以传入1)数组2)数组元素
二、字符缓冲流
BufferedReader 带缓冲字符数组的字节输入流
新增功能(不能多态):readLine()
BufferedWriter 带缓冲字符数组的字节输出流
新增功能(不能多态):newLine()
不能多态-不能面向超类型Reader和writer编程
三、Properties特点
1)实现了map接口
2)继承Hashtable 键值都不为null
3)键与值 只能为字符串,其他类型不能与文件交互
4)存在大量的新增方法,不建议发生多态
与文件交互
a)对应.properties文件
格式:
1)#后面跟注释
2)一行一个键值对(格式:键=值)
Properties新增添加和读取数据的方法(只能是String类型)
Object setProperty(String key, String value)
调用 Hashtable 的方法 put。
String getProperty(String key)
用指定的键在此属性列表中搜索属性。
b)存储:把Properties 对象数据写入到文件。
注意:此时Properties对象必须键值都是String,不然classCastException。
store(OutputStream out, String comments) 采用ISO 8859-1字符集
store(Writer writer, String comments)
c)读取:把文件数据读取到Properties 对象中。
注意:此时会把文件里所有键值对追加放入Properties对象中,不会
清除原有Properties 对象。
load(InputStream inStream) 采用ISO 8859-1字符集
load(Reader reader)
四、转换流(字节流———》字符流)
主要作用:把字节【整数】流转换为字符【字符】流(不能字符转字节流!)
1、OutputStreamWriter
a)可以设置编码字符集
b)带缓冲区-(不能设置大小)
c)进行字节输出流转字符输出流
2、InputStreamReader:字节输入流---转--》字符输入流
a)可以设置解码字符集
b)带缓冲区-(不能+设置大小)
c)进行字节输入流转字符输入流
五、序列化概念
a)序列化(输出):把程序中的数据 (基本类型,引用类型)写出 到一个数据源
b)反序列化(输入):把数据源序列化的数据 读取到 程序中的数据(基本类型,引用类型)
*
*
* 注意:
这里写出的数据不是简单的字符数据是java内部的一种格式,也可以理解写的字节数据,
所以序列化后的数据,不是给人看的,给程序看的!!
序列化的流-(基本类型加字符串序列化)
DataInputStream 可以读入基本类型加字符串的字节输入流
DataOutputStream 可以写出基本类型加字符串的字节输出流
b)基本类型加对象类型序列化
ObjectInputStream 可以读入基本类型加字符串还有对象的字节输入流
ObjectoutputStream 可以写出基本类型加字符串还有对象的字节输出流
注意:
1)读写顺序要一致
2)序列化对象 -》 要实现 序列化接口Serializable(空接口)
3)设置序列化版本-》private static final long serialVersionUID = 1L;
4)序列化类版本 -》控制序列化后的对象的使用版本,防止,版本不一致,序列化类做了更改不能兼容原来的版本,则需要更改版本。
5)无需序列化属性 -》 transient修饰
6)用容器装序列化内容 -》list set map等,方便遍历
相关文章推荐
- java初级第17天总结笔记
- java初级第16天总结笔记
- java 图片处理
- java初级第15天总结笔记
- java初级第14天总结笔记
- java初级第13天总结笔记
- Java学习--扑克牌比大小的小游戏
- java初级第12天总结笔记
- java初级第11天笔记资料
- java初级第10天笔记资料
- Java 对象比较器 comparator 的作用及用法
- SpringJDBC
- jdk里面找不到tools.jar和dt.jar
- java 单例
- Java代理模式(静态模式&动态模式简介)
- java中DTO clone
- java的动态代理机制详解
- Spring MVC 教程,快速入门,深入分析
- Java spring 框架跨域问题处理
- Spring MVC DispatcherServlet