22.高效字符流、对象流、方法中多参数、Properties、工具类的封装

一、高效流(缓冲流)字符

都是将字符流传递进高效流中进行封装

1.BufferedReader

1.1简介

从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取

可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了

1.2构造方法

public BufferedReader(Reader in)  创建一个使用默认大小输入缓冲区的缓冲字符输入流

1.3常用的方法

public String readLine()   读取一个文本行

2.BufferedWriter

2.1简介

将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入

可以指定缓冲区的大小,或者接受默认的大小。在大多数情况下,默认值就足够大了

2.2构造方法

public BufferedWriter(Writer out)  创建一个使用默认大小输出缓冲区的缓冲字符输出流

2.3常用的方法

public void newLine()  写入一个行分隔符

二、对象流

1.序列化

1.使用场景:在读写对象到文件中的时候 在网格传输对象的时候 需要序列化

2.序列化的机制:使用一个序列化的字节(唯一的标识)来表示文件中对象(属性与方法)

3.序列化:将对象写入到文件中的过程

4.反序列化:将文件中的序列化的对象读取的过程

2.对象流写

ObjectOutputStream

将对象写入到文件中,可以实现对象的持久存储

在网格通信中可以传输对象

只能将java.io.Serializable接口的对象写入流中

构造方法

public ObjectOutputStream(OutputStream out)   
创建写入指定 OutputStream的 ObjectOutputStream

常用的方法

public final void writeObject(Object obj)  将指定的对象写入 ObjectOutputStream

 3.对象读

ObjectInputStream

ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化

只支持java.io.Serializable接口的对象输出流中

构造方法

public ObjectInputStream(InputStream in)  创建从指定 InputStream 读取的 ObjectInputStream

常用的方法

public final Object readObject()  从 ObjectInputStream 读取对象

 三、方法中多参数

在定义方法时,不确定参数的 个数,可以使用多参数

语法:

访问修饰符 返回值类型 方法名(数据类型   ... 变量名){

        方法体

        返回值

        }

注意点:

1.多参数本质是数组(数据类型得一致)

2.在方法定义中只能有一个多参数

3.多参数要写在参数列表的最后面

public class Test1 {
    public static void main(String[] args) {
        show("1",10,20,30);
    }
    public static  void show(String num1,int ... num2){
        System.out.println(Arrays.toString(num2));
    }
}

 四、Properties

1.简介

Properties 类表示了一个持久的属性集。

Properties 可保存在流中或从流中加载。

属性列表中每个键及其对应值都是一个字符串。

继承于Hashtable 所以HashTable中方法都能用

2.构造方法

public Properties()  创建一个无默认值的空属性列表

3.常用的方法

public Object setProperty(String key,String value)  调用 Hashtable 的方法put
public String getProperty(String key)  根据键获取值
public Set<String> stringPropertyNames()  返回此属性列表中的键集,其中该键及其对应值是字符串
public void store(OutputStream out,String comments)  
public void load(InputStream inStream)

将Properties加载到文件中

将properties文件中数据加载到 Properties对象中 

中文是以Unicode编码存储的,可在线查看Unicode

五、工具类的封装

 

package com.qf.stu.demo;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

public class PropertiesUtils {
    private static PropertiesUtils propers;
    private static Properties pro;
    private PropertiesUtils(){
        try {
            pro=new Properties();
            pro.load(new FileInputStream("2.properties"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static String getvalue(String key){
        return pro.getProperty(key);
    }

    public static PropertiesUtils show(){

        if (propers==null){
            propers= new PropertiesUtils();
        }
        return propers;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值