java基础IO流 Properties类,打印流,合并流

  Properties类

一、概述
1、Properties是Hashtable的子类,它具备Map集合的特点。而且它里面还有存储的键值对,都是字符串,无泛型定义。是集合中和IO技术想结合的集合容器。
2、特点:
1)可用于键值对形式的配置文件
2)在加载时,需要数据有固定的格式,常用的是:键=值

二、特有方法
1、设置
Object setProperty(String key,String value);
//设置键和值,调用Hashtable的方法put
2、获取
String getProperty(String key);
//指定key搜索value
Set stringPropertyName();
//返回属性列表的键集,存入Set集合
3、加载流和存入流
void load(InputStream ism);
//从输入字节流中读取属性列表(键和元素对)。又称将流中的数据加载进集合。
void load(Readerreader);
//从输入字符流中读取属性列表(键和元素对)。又称将流中的数据加载进集合。
voidlist(PrintStream out);//将属性列表输出到指定的输出流
void store(OutputStreamout,String comments);
//对应load(InputStream )将属性列表(键值对)写入输出流。comments属性列表的描述。
void store(Writerwriter, String comments);
//对应load(Reader)将属性列表(键值对)写入输出流。comments属性列表的描述。

     package properties;

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

public class PropertiesDemo {

    /**
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        //SetandGet();
        loadDemo();
    }
    public static void loadDemo() throws IOException {
        Properties p=new Properties();
        FileInputStream fis=new FileInputStream("F:\\info.txt");
        //将流存到集合中
        p.load(fis);
        p.setProperty("zhaosi", "29");
        p.list(System.out);
        FileOutputStream fos=new FileOutputStream("F:info.txt");
        p.store(fos, "haha");
        p.list(System.out);

    }
    //设置和获取元素
    public static void SetandGet(){
        Properties p=new Properties();
        p.setProperty("张三", "13");
        p.setProperty("wangwu", "23");
        p.setProperty("赵六", "33");
        System.out.println(p);
        Set<String> names=p.stringPropertyNames();
        for (String name : names) {
            System.out.println(name+":::"+p.getProperty(name));
        }

    }

}
练习二
package properties;

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

public class RunCount {

    /**
     * 记录程序运行次数的配置文件
     * 运行到多少次需要去注册
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException {
        File file=new File("F:\\count.ini");
        if (!file.exists()) {
            file.createNewFile();
        }
        FileInputStream fis=new FileInputStream(file);
        //把流存到集合中
        Properties p=new Properties();
        p.load(fis);
        int count=0;
        String value=p.getProperty("time");
        if (value!= null) {
            count=Integer.parseInt(value);
            if (count>=5) {
                System.out.println("您的体验次数用完,需要注册缴费!");
            }
            count++;
        }
        p.setProperty("time",count+"");
        FileOutputStream fos=new FileOutputStream("F:\\count.ini");
        p.store(fos, "");

    }


}

打印流
一、概述
1、打印流包括:PrintStream和PrintWriter
2、该流提供了打印方法,可将各种类型的数据都原样打印。

二、字节打印流:PrintStream
构造方法中可接收的参数类型:
1、File对象。File
2、字符串路径:String
3、字符输出流:OutputStream

三、字符串打印流:PrintWriter
构造方法中可接受的参数类型
1、File对象:File
2、字符串路径:String
3、字节输出流:OutputStream
4、字符输出流:Writer
练习:

      package printWriterDemo;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;

public class PrintStream {

    /**
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException {
        BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
        PrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter("F:\\1.txt")),true);
        String line=null;
        while ((line=bf.readLine())!=null) {
            if ("over".equals(line)) {
                break;
            }
            out.println(line.toUpperCase());
            //out.flush();
        }
        bf.close();
        out.close();
    }

}

序列流
一、概述
1、SequenceInputStream对多个流进行合并。也被称为合并流。

二、常见合并多个流文件步骤
1、创建集合,并将流对象添加进集合
2、创建Enumeration对象,将集合元素加入。
3、创建SequenceInputStream对象,合并流对象
4、创建写入流对象,FileOutputStream关联写入文件
5、利用SequenceInputStream对象和FileOutputStream对象读数据进行反复读写操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值