zoukankan      html  css  js  c++  java
  • java中Properties类的使用

    在java.util 包下面有一个类 Properties,该类主要用于读取以项目的配置文件(以.properties结尾的文件和xml文件)。

    Properties的构造函数有两个,一个不带参数,一个使用一个Properties对象作为参数。

    使用Properties读取.properties文件

    test.properties文件如下:

    #测试环境配置:平台路径配置
    jstrd_home=D:/TMS2006/webapp/tms2006/WEB-INF/
    dbPort = localhost
    databaseName = mydb
    dbUserName = root
    dbPassword = root
    # 以下为数据库表信息
    dbTable = mytable
    # 以下为服务器信息
    ip = 192.168.0.9

    读取test.properties的方法如下:

    impor java.io.*;

    import java.util.*;

    public class ReadProperties

    {

    public static void main(String[] args) {

    File pFile = new File("e:\\test.properties");    // properties文件放在e盘下(windows)
                  FileInputStream   pInStream=null;
              try {
                        pInStream = new FileInputStream(pFile );
                    } catch (FileNotFoundException e) {
                        e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
                    }

             Properties p = new Properties();

              try {
                        p .load(pInStream );       //Properties 对象已生成,包括文件中的数据
                    } catch (IOException e) {
                        e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
                    }

            Enumeration enu = p.propertyNames();     //取出所有的key

    //输出--1

    p.list(System.out) ;        //System.out可以改为其他的输出流(包括可以输出到文件)

    //输出--2

    while( enu .hasMoreElements())

    {

    System.out.print("key="+enu.nextElement());

    System.out.print("value="+p.getProperty((String)enu .nextElement()));

    }

    }

    }

    读取xml格式的配置文件

    test.xml文件ruxi

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    <properties>
    <entry key="koo">bar</entry>
    <entry key="fu">baz</entry>
    </properties>

    读取xml的方法

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

    public class Test {
        public static void main(String[] args) {

            File pFile = new File("e:\\test.xml");    // properties文件放在e盘下(windows)
            FileInputStream pInStream = null;
            try {
                pInStream = new FileInputStream(pFile);
                Properties p = new Properties();
                p.loadFromXML(pInStream);
                p.list(System.out);
            } catch (IOException e) {
                e.printStackTrace();  

            }

        }
    }

    通过list 方法将Properties写入Properties文件

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

    public class Test {
        public static void main(String[] args) {

    Properties p = new Properties();

    p.setProperty("id","dean");

    p.setProperty("password","123456");

    try{
                PrintStream fW = new PrintStream(new File("e:\\test1.properties"));
           p.list(fW );        } catch (IOException e) {
                e.printStackTrace();  

            }

        }
    }

    保存为xml

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

    public class Test {
        public static void main(String[] args) {

    Properties p = new Properties();

    p.setProperty("id","dean");

    p.setProperty("password","123456");

    try{
                PrintStream fW = new PrintStream(new File("e:\\test1.xml"));
         p.storeToXML(fW,"test");

    } catch (IOException e) {
                e.printStackTrace();  

            }

        }
    }

  • 相关阅读:
    线程间协作的两种方式:wait、notify、notifyAll和Condition
    Lock
    线程池ExecutorService的使用
    使用volatile的条件
    解决共享资源竞争
    并发时捕获异常
    Executor执行器
    BufferedReader 和BufferedWriter
    彻底理解Java的Future模式
    贝叶斯网络简介--翻译版
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400560.html
Copyright © 2011-2022 走看看