Java_Properties类

Hashtable与HashMap区别

  1. 主要:Hashtable线程安全,同步,效率相对低下

    HashMap线程不安全,异步,效率高

  1. 父类:Hashtable父类是Dictionary

    HashMap父类是AbstractMap

  1. Hashtable无论键值都不能为null

    HashMap键可以有一个为空

值可以有很多为null

    Properties继承于Hashtable

Properties类常用方法:

String     getProperty(String key)
用指定的键在此属性列表中搜索属性。 String getProperty(String key, String defaultValue)
用指定的键在属性列表中搜索属性. Object setProperty(String key, String value)
调用 Hashtable 的方法 put。 void store(OutputStream out, String comments)
以适合使用 load(InputStream) 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。 void storeToXML(OutputStream os, String comment)
发出一个表示此表中包含的所有属性的 XML 文档。默认编码UTF-8 void storeToXML(OutputStream os, String comment, String encoding)
使用指定的编码发出一个表示此表中包含的所有属性的 XML 文档。 Set<String> stringPropertyNames()
返回此属性列表中的键集,其中该键及其对应值是字符串,如果在主属性列表中未找到同名的键,则还包括默认属性列表中不同的键。 Enumeration<?> propertyNames()
返回属性列表中所有键的枚举,如果在主属性列表中未找到同名的键,则包括默认属性列表中不同的键。

四种加载资源文件方法

直接加载

    1.相对路径   

    //相对路径
p.load(new FileInputStream(new File("db.properties")));

    2.绝对路径

   //绝对路径
p.load(new FileInputStream(new File("C:\\Users\\Administrator\\Desktop\\db.properties")));

使用类的相对路径获取资源文件

    3.类路径加载资源文件1  

    //类路径加载资源文件
p.load(Demo3.class.getResourceAsStream("/com/ahd/Hashtable/db.properties"));;

    4.类路径加载资源文件2  

    p.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("com/ahd/Hashtable/db.properties"));;

练习代码

  

package com.ahd.Hashtable;

import java.util.Properties;

/***
* Hashtable与HashMap区别:
* 1.Hashtable线程安全,同步,效率低下
* HashMap线程不安全,异步,效率高
* 2.继承的父类不同,Hashtable继承于Dictionary
* HashMap继承于AbstractMap
* 3.Hashtable无论键值不能为null
* HashMap键可以有一个为null,值可以有很多null
* properties是Hashtable的子类
* @author Administrator
*
*/
public class Demo1 {
public static void main(String[] args) {
Properties p=new Properties();
//设置存储值
p.setProperty("user", "scott");
p.setProperty("password", "123456");
//读取值
String user=p.getProperty("user");
String password=p.getProperty("password", "test"); System.out.println(user);
System.out.println(password); }
}

Demo1

  

package com.ahd.Hashtable;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties; public class Demo2 {
public static void main(String[] args) throws FileNotFoundException, IOException {
//设置键值
Properties p=new Properties();
p.setProperty("user", "scott");
p.setProperty("password", "123456"); //存入文件 .properties 绝对路径
p.store(new FileOutputStream(new File("C:\\Users\\Administrator\\Desktop\\db.properties")), "db配置备注");
p.storeToXML(new FileOutputStream(new File("C:\\Users\\Administrator\\Desktop\\db.xml")), "db配置备注"); //存入文件,相对路径 默认是本工程
p.store(new FileOutputStream(new File("db.properties")), "db配置备注");
p.storeToXML(new FileOutputStream(new File("db.xml")), "db配置备注"); }
}

Demo2

  

package com.ahd.Hashtable;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties; /***
* 从文件中读取map信息
* @author Administrator
*
*/
public class Demo3 {
public static void main(String[] args) throws FileNotFoundException, IOException {
Properties p=new Properties();
//相对路径
//p.load(new FileInputStream(new File("db.properties"))); //绝对路径
//p.load(new FileInputStream(new File("C:\\Users\\Administrator\\Desktop\\db.properties"))); //类路径加载资源文件
//p.load(Demo3.class.getResourceAsStream("/com/ahd/Hashtable/db.properties"));; //线程加载
p.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("com/ahd/Hashtable/db.properties"));;
System.out.println(p.getProperty("user","ddd"));
}
}

Demo3

Java_Properties的更多相关文章

  1. java_Properties写入文件

    package ming; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.F ...

  2. java_Properties集合

    package propertiesTest; import java.io.FileReader; import java.io.FileWriter; import java.io.IOExcep ...

  3. 大数据之Oozie——源码分析(一)程序入口

    工作中发现在oozie中使用sqoop与在shell中直接调度sqoop性能上有很大的差异.为了更深入的探索其中的缘由,开始了oozie的源码分析之路.今天第一天阅读源码,由于没有编译成功,不能运行测 ...

  4. 如何使weblogic11g类似weblogic923一样统一使用一个boot.properties文件

    如何使weblogic11g类似weblogic923一样 统一使用一个boot.properties文件 1.在weblogic域下创建文件boot.properties输入用户密码例如:usern ...

  5. 关于一次Weblogic活动线程的问题处理

    Weblogic控制台监控发现 环境>>服务器>>你的服务器>>监控>>线程 中活动执行线程竟然是2000多.同一套系统在另一套平台上,并且访问的人不少 ...

  6. J2EE 关于WebLogic下应用使用URL.openConnection获取连接返回 HttpsURLConnection与SOAPHttpsURLConnection的问题

    J2EE 关于WebLogic下应用使用URL.openConnection获取连接返回 HttpsURLConnection与SOAPHttpsURLConnection的问题 2012年03月09 ...

  7. JProfiler远程监控

    1.  服务端安装JProfiler(与客户端版本一致) 2.  客户端配置连接: A).session——integration wizards——New remote integration B) ...

  8. Windows客户端的JProfiler远程监控Linux上的Tomcat

    1.测试环境 服务器:RedHat Linux 3.4.3-9.EL4(内核版本 2.6.9-5.EL),Tomcat5.5.20,Sun JDK 1.5.0_09,JProfiler 4.3.2 f ...

  9. JProfiler远程监控 -转

    1. 服务端安装JProfiler(与客户端版本一致) 2. 客户端配置连接: A).session——integration wizards——New remote integration B).选 ...

随机推荐

  1. 常用 ADB 命令[ZZ]

    https://blog.csdn.net/yang_zhang_1992/article/details/71404186 1. 显示当前运行的全部模拟器: adb devices 2. 对某一模拟 ...

  2. Must Know Tips/Tricks in Deep Neural Networks

    Must Know Tips/Tricks in Deep Neural Networks (by Xiu-Shen Wei)   Deep Neural Networks, especially C ...

  3. My year of 2017

    有一个姓罗的胖子,他说他有一个要坚持20年计划,第一年我真的不觉得什么,好比每天晚上都要刷牙每天早上都要吃早饭一样简单.实际几年走下来之后,发现能坚持下来真不是一件容易的事情,生活中总会有各种各样的事 ...

  4. kaldi 运行voxforge例子

    ---------------------------------------------------------------------------------------------------- ...

  5. 告诉你,Spring Boot 真是个牛逼货!

    现在 Spring Boot 非常火,各种技术文章,各种付费教程,多如牛毛,可能还有些不知道 Spring Boot 的,那它到底是什么呢?有什么用?今天给大家详细介绍一下. Spring Boot ...

  6. 【ABP框架系列学习】启动配置(5)

    ABP提供了在启动时配置模块的基础设施和模型. 1.配置ABP 配置ABP是在模块的PreInitialize方法中完成的,例如: public class SimpleTaskSystemModul ...

  7. mysql 开发基础系列5 运算符

    1. 算术运算符 2.比较运算符 注意NULL值不能用= 运算符 SELECT * FROM t WHERE c =NULL; -- 需要改成 SELECT * FROM t WHERE c IS N ...

  8. [Shell]sed命令在MAC和Linux下的不同使用方式

    ---------------------------------------------------------------------------------------------------- ...

  9. SpringBoot 启动概述

    透过现象看本质,SpringApplication 只是将一个典型的Spring应用的启动流程进行了扩展,因此,透彻理解 Spring 容器是打开 Spring Boot 大门的一把钥匙. Sprin ...

  10. Mysql 调优和水平扩展思路

    系统调优参数 一些比较重要的参数: back_log:back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中.如果MySql的连接数据达到max_connecti ...