Properties是一个特殊的Map,因为和IO流牵扯到了一块……

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
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 {

/*
   * Map
   *  |--Hashtable
   *   |--Properties:
   *
   * Properties集合:
   * 特点:
   * 1,该集合中的键和值都是字符串类型。
   * 2,集合中的数据可以保存到流中,或者从流获取。
   *
   * 通常该集合用于操作以键值对形式存在的配置文件。
   *
   *
   */
  
//  methodDemo_4();
//  myLoad();
  
  test();
 }
 
 
 //对已有的配置文件中的信息进行修改。
 /*
  * 读取这个文件。
  * 并将这个文件中的键值数据存储到集合中。
  * 在通过集合对数据进行修改。
  * 在通过流将修改后的数据存储到文件中。
  */
 public static void test() throws IOException{
  //读取这个文件。
  File file = new File("info.txt");
  if(!file.exists()){
   file.createNewFile();
  }
  FileReader fr = new FileReader(file);
  
  
  
  
  //创建集合存储配置信息。
  Properties prop = new Properties();
  
  //将流中信息存储到集合中。
  prop.load(fr);
  
  prop.setProperty("wangwu", "16");
  
  
  
  FileWriter fw = new FileWriter(file);
  
  prop.store(fw,"");
  
//  prop.list(System.out);
  
  fw.close();
  fr.close();
  
  
  
 }
 
 
 
 //模拟一下load方法。
 public static void myLoad() throws IOException{
  
  Properties prop  = new Properties();
  
  BufferedReader bufr = new BufferedReader(new FileReader("info.txt"));
  
  String line = null;
  
  while((line=bufr.readLine())!=null){
   
   if(line.startsWith("#"))
    continue;
   
   String[] arr = line.split("=");
   
//   System.out.println(arr[0]+"::"+arr[1]);
   prop.setProperty(arr[0], arr[1]);
  }
  
  prop.list(System.out);
  
  bufr.close();
  
 }
 
 public static void methodDemo_4() throws IOException { 
  
  Properties prop  = new Properties();
  
  //集合中的数据来自于一个文件。
  //注意;必须要保证该文件中的数据是键值对。
  //需要使用到读取流。
  FileInputStream fis = new FileInputStream("info.txt");
  
  //使用load方法。
  prop.load(fis);
  
  prop.list(System.out);
  
  
  
 }

public static void methodDemo_3() throws IOException {
  Properties prop  = new Properties();
  
  //存储元素。
  prop.setProperty("zhangsan","30");
  prop.setProperty("lisi","31");
  prop.setProperty("wangwu","36");
  prop.setProperty("zhaoliu","20");
  
  //想要将这些集合中的字符串键值信息持久化存储到文件中。
  //需要关联输出流。
  FileOutputStream fos = new FileOutputStream("info.txt");
  
  //将集合中数据存储到文件中,使用store方法。
  prop.store(fos, "info");
  
  fos.close();
  
 }

/**
  * 演示Properties集合和流对象相结合的功能。
  */
 
 public static void methodDemo_2(){
  Properties prop  = new Properties();
  
  //存储元素。
//  prop.setProperty("zhangsan","30");
//  prop.setProperty("lisi","31");
//  prop.setProperty("wangwu","36");
//  prop.setProperty("zhaoliu","20");
 
  prop = System.getProperties();
  prop.list(System.out);
 }
 
 /*
  * Properties集合的存和取。
  */
 
 public static void propertiesDemo(){
  //创建一个Properties集合。
  
  Properties prop  = new Properties();
  
  //存储元素。
  prop.setProperty("zhangsan","30");
  prop.setProperty("lisi","31");
  prop.setProperty("wangwu","36");
  prop.setProperty("zhaoliu","20");
  
  //修改元素。
  prop.setProperty("wangwu","26");
  
  //取出所有元素。
  Set<String> names = prop.stringPropertyNames();
  
  for(String name : names){
   String value = prop.getProperty(name);
   System.out.println(name+":"+value);
  }
 }
}

java Properties的用法的更多相关文章

  1. Java properties文件用法

    package com.suyang.properties; import java.io.FileInputStream; import java.io.FileNotFoundException; ...

  2. java中log4j用法详细讲解和一些小总结

    0.Log4j的用法详解 首先,在项目中的classes 中新建立一个log4j.properties文件即可: 在实际编程时,要使Log4j真正在系统中运行事先还要对配置文件进行定义.定义步骤就是对 ...

  3. JAVA的continue用法

    JAVA的continue用法: public class test{ public static void main(String [] args){  for(int i=0;i<=10;i ...

  4. Java Spring AOP用法

    Java Spring AOP用法 Spring AOP Java web 环境搭建 Java web 项目搭建 Java Spring IOC用法 spring提供了两个核心功能,一个是IoC(控制 ...

  5. Java Spring IOC用法

    Java Spring IOC用法 Spring IoC 在前两篇文章中,我们讲了java web环境搭建 和 java web项目搭建,现在看下spring ioc在java中的运用,开发工具为In ...

  6. 四种Java线程池用法解析

    本文为大家分析四种Java线程池用法,供大家参考,具体内容如下 http://www.jb51.net/article/81843.htm 1.new Thread的弊端 执行一个异步任务你还只是如下 ...

  7. Java Properties工具类详解

    1.Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便.首先该类是继承自 Hashtable<Object,Object> 这就奠 ...

  8. JAVA中ArrayList用法

    JAVA中ArrayList用法 2011-07-20 15:02:03|  分类: 计算机专业 |  标签:java  arraylist用法  |举报|字号 订阅     Java学习过程中做题时 ...

  9. this在java中的用法

    this在java中的用法 1.使用this关键字引用成员变量 作用:解决成员变量与参数或局部变量命名冲突的问题 public class Dog { String name; public Dog( ...

随机推荐

  1. NLP入门(八)使用CRF++实现命名实体识别(NER)

    CRF与NER简介   CRF,英文全称为conditional random field, 中文名为条件随机场,是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机 ...

  2. Java输入输出处理技术2

    7.从键盘输入 从键盘输入一行字符,并显示到屏幕上. package io; import java.io.*; public class ReadAndWrite { public static v ...

  3. Objective-C:继承、分类(Category、extension)、协议(protocol),个人理解,仅供参考

    总结:继承.分类(Category.extension).协议(protocol)   一.继承: (1)特点: 继承多用于一般父类中的方法功能比较齐全,子类从父类继承过来使用,可以省略很多重复的代码 ...

  4. 第十二章 ThreadPoolExecutor使用 + 工作机理 + 生命周期

    1.最基础的线程池ThreadPoolExecutor 使用方式: /** * ThreadPoolExecutor测试类 * 注意: * 1.ThreadPoolExecutor是一个线程池 * 2 ...

  5. Python源码学习七 .py文件的解释

    Python源码太复杂了... 今天看了下对.py文件的parse, 云里雾里的 py文件是最简单的, 在python的交互式窗口 import这个模块 a = 10 print(a) 开始分析,堆栈 ...

  6. JavaScript前世今生

    JavaScript前世今生,HelloWorld与开发环境 JavaScript历史 大概在1992年,一家称作Nombas的公司开始开发一种叫做C--(C-minus-minus,简称Cmm)的嵌 ...

  7. SqlServer数据库(可疑)解决办法4种

     亲自试过,可行!!!!! SqlServer数据库(可疑)解决办法4种   重启服务--------------------------------------------------日志文件丢了, ...

  8. Unity3D游戏开发最佳实践20技巧(三)

    [文本] 38.假设你有非常多的剧情文本.那么把他们放到一个文件中面. 不要把他们放到Inspector的字段中去编辑. 这些须要做到不打开Unity,也不用保存Scene就能够方便的改动. 39.假 ...

  9. SSIS包部署错误之运行环境设置

    在SQLServer代理处新建了一个job,步骤里面的操作是指向一个SSIS模型包 执行,报错如下 根据报错信息是64bit,于是做出修改如下图 再次执行 OK

  10. Linux shell 脚本入门教程+实例

    原文:http://www.wiquan.com/article/136 为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是shell仍然是一个非常灵活的工具.She ...