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. 河北大学python选修课00次作业

    学习python认为挺好玩的一件事.看到很多关于python的东西在网上,看到有这个课,认为只是选修课,别人也可以选,自己想不能被别人落下,别人都会,我不会可不行. 而且认为python是一个很强大的 ...

  2. Spring Boot使用过滤器和拦截器分别实现REST接口简易安全认证

    本文通过一个简易安全认证示例的开发实践,理解过滤器和拦截器的工作原理. 很多文章都将过滤器(Filter).拦截器(Interceptor)和监听器(Listener)这三者和Spring关联起来讲解 ...

  3. 笔记:安卓App消息处理机制

    内容简述 类似Binder机制,MessageQueue.Looper也有底层的C++实现,涉及文件管道和驱动等. 以下仅从Java层的Looper.Handler和MessageQueue等相关类型 ...

  4. Python爬虫学习之正则表达式爬取个人博客

    实例需求:运用python语言爬取http://www.eastmountyxz.com/个人博客的基本信息,包括网页标题,网页所有图片的url,网页文章的url.标题以及摘要. 实例环境:pytho ...

  5. 每天学点SpringCloud(三):自定义Eureka集群负载均衡策略

    相信看了 每天学点SpringCloud(一):简单服务提供者消费者调用,每天学点SpringCloud(二):服务注册与发现Eureka这两篇的同学都了解到了我的套路,没错,本篇博客同样是为了解决上 ...

  6. Node.js项目拆包工程化

    背景 在我们开发的过程中,经常会遇到这样的问题,开发完了一些代码或者一个接口,别的小伙伴过来问你,代码可不可以给他复用,接口可以给他调用.这说明代码的复用和抽象对团队协作是很重要的.举个例子,如下图 ...

  7. [原创]K8Cscan插件之端口扫描C#源码

    [原创]K8 Cscan 大型内网渗透自定义扫描器 https://www.cnblogs.com/k8gege/p/10519321.html Cscan简介:何为自定义扫描器?其实也是插件化,但C ...

  8. React 实现一个时钟

    最终效果 其实主要难点在于最左边的小时钟 指针的实现方式很简单,就是通过绝对定位将指针移到中间,然后以下边中间的位置为圆心旋转即可.代码如下: <!DOCTYPE html> <ht ...

  9. List,泛型和Datatable 的相互转换

    public static DataTable ToDataTableTow(IList list) { DataTable result = new DataTable(); ) { Propert ...

  10. 《JQuery技术内幕》读书笔记——自调用匿名函数剖析

    Javascript语言中的自调用匿名函数格式如下: (function(){ //do somethings })(); 它还有另外两种等价写法如下: //等价写法一 (function(){ // ...