zoukankan      html  css  js  c++  java
  • IO流(Properties存取配置文件).

    package com.yyq;
    
    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.Properties;
    import java.util.Set;
    
    /*
     * Properties 是hashtable的子类
     * 也就是说它具备map集合的特点。而且它里面存储的键值对都是字符串
     * 不需要泛型
     * 是集合中和IO技术相结合的集合容器
     * 该对象的特点: 可以用于键值对形式的配置文件
     * 把配置信息持久化存储到值得 在读取是先读取配置文件。
     * 
     */
    public class PropertiesDemo {
    
        public static void main(String[] args) throws IOException {
            // TODO Auto-generated method stub
            //设置和获取元素    
            method_1();
            loadDemo();
        }
        // 演示:如何将流中的数据存储到集合中。
        //想要将info.txt中的键值数据存到集合中进行操作
        /*
         *  1.用一个流和info.txt 文件关联
         *  2.读取一行数据,将该行数据用"="进行切割
         *  3.等号左边作为建,右边作为值,存入到properties集合中即可
         * 
         * 这样写很麻烦,所以 properties给了我们一个字节流或者字符流
         * 直接加载的方法: load
         */
        // prop.load 方法的原理: 使用load 方法
        // store 方法的使用: 
        // properties 方法的特点: 可以用于键值对形式的配置文件
        //那么在加载数据时,需要数据有固定格式: 键 = 值
        public static void loadDemo() throws IOException{
            Properties prop = new Properties();
            FileInputStream fis = new FileInputStream("info.txt");
            //将数据存储到指定的文件中 store方法  (持久化)
            //prop.setProperty("aaa", "hahh");
            System.out.println(prop.getProperty("aaa"));
            prop.load(fis);
            prop.setProperty("aaa", "hahh");
            FileOutputStream fos = new FileOutputStream("info.txt");
            prop.store(fos, "nohao");
            System.out.println(prop);
            // list +printStream --- 控制台
            prop.list(System.out);
        }
        public static void method_1() throws IOException{
            BufferedReader bufr = new BufferedReader(new FileReader("info.txt"));
            String line = null;
            Properties prop = new Properties();
            while((line = bufr.readLine())!=null)
            {
                String[] arr = line.split("=");
                prop.setProperty(arr[0], arr[1]);
            }
            //String value = prop.getProperty("李四");
            //System.out.println(value);
            // 修改配置的值,根据键,可以修改值
            //prop.setProperty("张三", "10");
            Set<String> names = prop.stringPropertyNames();
            
            for(String s:names){
                System.out.println(s+":"+prop.getProperty(s));
            }
            System.out.println(prop);
        }
        public static void setAndGet(){
            Properties prop = new Properties();
            prop.setProperty("张三", "30");
            prop.setProperty("李四", "40");
            String value = prop.getProperty("李四");
            System.out.println(value);
            // 修改配置的值,根据键,可以修改值
            prop.setProperty("张三", "10");
            Set<String> names = prop.stringPropertyNames();
            
            for(String s:names){
                System.out.println(s+":"+prop.getProperty(s));
            }
            System.out.println(prop);
        }
    
    }
  • 相关阅读:
    论文阅读 | FIESTA: Fast IdEntification of State-of-The-Art models using adaptive bandit algorithms
    论文阅读 | Reinforced Training Data Selection for Domain Adaptation
    可以生成柱状图,曲线图,饼状图的自定义控件
    CSS 颜色代码大全
    Js操作Excel常用方法
    Javascript document对象常用的方法和属性
    event.keyCode用法及列表
    JS+正则表达式对表单的一些简单验证
    属性设置@property之retain,assign,weak,strong,copy
    iOS屏幕适配教程(手动布局和自动布局)
  • 原文地址:https://www.cnblogs.com/yangyongqian/p/5154978.html
Copyright © 2011-2022 走看看