您的位置:首页 > 编程语言 > Java开发

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等,方便遍历
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: