`

JAVA属性文件的操作类Propertise

    博客分类:
  • java
阅读更多

 

J2SE API读取Properties文件六种方法

http://webservices.ctocio.com.cn/115/8689615.shtml

 

1。使用Java.util.Properties类的load()方法

  示例:InputStreamin=lnewBufferedInputStream(newFileInputStream(name));

  Propertiesp=newProperties();

  p.load(in);

  2。使用java.util.ResourceBundle类的getBundle()方法

  示例:ResourceBundlerb=ResourceBundle.getBundle(name,Locale.getDefault());

  3。使用java.util.PropertyResourceBundle类的构造函数

  示例:InputStreamin=newBufferedInputStream(newFileInputStream(name));

  ResourceBundlerb=newPropertyResourceBundle(in);

  4。使用class变量的getResourceAsStream()方法

  示例:InputStreamin=JProperties.class.getResourceAsStream(name);

  Propertiesp=newProperties();

  p.load(in);

  5。使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法

  示例:InputStreamin=JProperties.class.getClassLoader().getResourceAsStream(name);

  Propertiesp=newProperties();

  p.load(in);

  6。使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法

  示例:InputStreamin=ClassLoader.getSystemResourceAsStream(name);

  Propertiesp=newProperties();

  p.load(in);

  补充

  Servlet中可以使用javax.servlet.ServletContext的getResourceAsStream()方法

  示例:InputStreamin=context.getResourceAsStream(path);

  Propertiesp=newProperties();

  p.load(in);

 

这个类的作用在于帮你解决连接数据库时的" 硬编码" 问题, 即驱动类, 连接字符串, 用户名, 密码这些信息可以通过资源文件来获得, 这种做法既增加了安全性, 又使代码容易维护.

  

处理数据库资源文件的类   DBConfig.java

 

这个类的作用在于帮你解决连接数据库时的" 硬编码" 问题, 即驱动类, 连接字符串, 用户名, 密码这些信息可以通过资源文件来获得, 这种做法既增加了安全性, 又使代码容易维护.

  

处理数据库资源文件的类   DBConfig.java

 

Java代码 复制代码
  1. import  java.util.Properties;  
  2. import  java.io.*;  
  3.   
  4. public   class  DBConfig {  
  5.     private   static  Object initLock =  new  Object();  
  6.   
  7.     private   static  DBConfig dbconfig =  null ;  
  8.   
  9.     private  Properties props =  null ;  
  10.   
  11.     public   static  DBConfig getInstance() {  
  12.         if  (dbconfig ==  null ) {  
  13.             synchronized  (initLock) {  
  14.                 if  (dbconfig ==  null ) {  
  15.                     dbconfig = new  DBConfig();  
  16.                 }  
  17.             }  
  18.         }  
  19.         return  dbconfig;  
  20.     }  
  21.   
  22.     private   synchronized   void  loadProperties() {  
  23.         props = new  Properties();  
  24.         try  {  
  25.             System.out.println("Load pro file" );  
  26.             InputStream in = getClass().getResourceAsStream("/db.properties" );  
  27.             props.load(in);  
  28.         } catch  (Exception e) {  
  29.             e.printStackTrace();  
  30.         }  
  31.     }  
  32.   
  33.     public  String getProperty(String propName) {  
  34.         if  (props ==  null ) {  
  35.             loadProperties();  
  36.         }  
  37.         return  props.getProperty(propName);  
  38.     }  
  39. }  
Java代码 复制代码
  1. import java.util.Properties;   
  2. import java.io.*;   
  3.   
  4. public class DBConfig {   
  5.     private static Object initLock = new Object();   
  6.   
  7.     private static DBConfig dbconfig = null;   
  8.   
  9.     private Properties props = null;   
  10.   
  11.     public static DBConfig getInstance() {   
  12.         if (dbconfig == null) {   
  13.             synchronized (initLock) {   
  14.                 if (dbconfig == null) {   
  15.                     dbconfig = new DBConfig();   
  16.                 }   
  17.             }   
  18.         }   
  19.         return dbconfig;   
  20.     }   
  21.   
  22.     private synchronized void loadProperties() {   
  23.         props = new Properties();   
  24.         try {   
  25.             System.out.println("Load pro file");   
  26.             InputStream in = getClass().getResourceAsStream("/db.properties");   
  27.             props.load(in);   
  28.         } catch (Exception e) {   
  29.             e.printStackTrace();   
  30.         }   
  31.     }   
  32.   
  33.     public String getProperty(String propName) {   
  34.         if (props == null) {   
  35.             loadProperties();   
  36.         }   
  37.         return props.getProperty(propName);   
  38.     }   
  39. }  
import java.util.Properties;
import java.io.*;

public class DBConfig {
	private static Object initLock = new Object();

	private static DBConfig dbconfig = null;

	private Properties props = null;

	public static DBConfig getInstance() {
		if (dbconfig == null) {
			synchronized (initLock) {
				if (dbconfig == null) {
					dbconfig = new DBConfig();
				}
			}
		}
		return dbconfig;
	}

	private synchronized void loadProperties() {
		props = new Properties();
		try {
			System.out.println("Load pro file");
			InputStream in = getClass().getResourceAsStream("/db.properties");
			props.load(in);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public String getProperty(String propName) {
		if (props == null) {
			loadProperties();
		}
		return props.getProperty(propName);
	}
}

 

 

资源文件  db.properties

url=jdbc:mysql://localhost:3306/example

driver=org.gjt.mm.mysql.Driver

username=root

password=123654

  在连接数据库的代码中 , 可以通过以下方式得到驱动类 ,url,username,password

 

Java代码 复制代码
  1. String driver       =   DBConfig.getInstance().getProperty( "driver" );  
  2. String url          =   DBConfig.getInstance().getProperty("url" );  
  3. String username =   DBConfig.getInstance().getProperty("username" );  
  4. String password =   DBConfig.getInstance().getProperty("password" );  
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="0" height="0" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"> <param name="src" value="http://peaklui.iteye.com/javascripts/syntaxhighlighter/clipboard.swf"> <embed type="application/x-shockwave-flash" width="0" height="0" src="http://peaklui.iteye.com/javascripts/syntaxhighlighter/clipboard.swf"></embed></object>
Java代码 复制代码
  1. String driver       =   DBConfig.getInstance().getProperty("driver");   
  2. String url          =   DBConfig.getInstance().getProperty("url");   
  3. String username =   DBConfig.getInstance().getProperty("username");   
  4. String password =   DBConfig.getInstance().getProperty("password");  
String driver		=	DBConfig.getInstance().getProperty("driver");
String url			=	DBConfig.getInstance().getProperty("url");
String username	=	DBConfig.getInstance().getProperty("username");
String password	=	DBConfig.getInstance().getProperty("password");

 

 

P.S.

请注意这三个文件的位置 , 建议放在同一个目录下

 

一.Properties 简介 
java.util.Properties 继承自 java.util.Hashtable 
Properties 类表示一个持久的属性集.Properties 可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字符串. 

二.基本方法 
2.1 如何从输入流中加载属性文件 
使用load(InputStream is)方法: 

Java代码 复制代码
  1. Properties properties = new Properties();  
  2. InputStream is = new FileInputStream("conn.properties");  
  3. properties.load(is);  
  4. is.close();  



2.2 如何读属性文件中的值 
使用getProperties(String key)方法:

Java代码 复制代码
  1. String temp = properties.getProperties(String key);  



<注>重载的方法getProperties(String key, String default)方法 将在查询不到值的情况下,返回default. 
即: 如果 null == properties.getProperties(String key); 
则有 default == properties.getProperties(String key, String default); 

2.3 如何获取属性文件中的所有的键 
使用propertyNames()方法,该方法返回是键的枚举.

Java代码 复制代码
  1. Enumeration enumeration = properties.propertyNames();  



2.4 如何修改属性文件中的值 
使用

Java代码 复制代码
  1. setProperties(String key, String value)  

方法. 
<注>该方法调用的 Hashtable 的put方法.如果键存在,则修改值;如果键不存在,则添加值. 

2.5 如何存储属性文件到输出流 
使用store(OutputStream os, String description)方法:

Java代码 复制代码
  1. Properties properties = new Properties();  
  2. OutputStream os = new FileOutputStream("test.properties");  
  3. String description = "store properties to test.properties";  
  4. properties.store(os, description);  
  5. os.close();  



2.6 如何清空所有值 
使用

Java代码 复制代码
  1. clear()  

 

方法. 
<注>该方法继承自 Hashtable 的clear()方法.清空哈希表. 

 

 

分享到:
评论

相关推荐

    java 操作文件工具类 java 操作文件工具类

    java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java ...

    java操作属性文件.pdf

    Java 提供了两种方式来操作属性文件,一种是使用 Properties 类,另一种是使用 ResourceBundle 类。 Properties 类是 Java 中的一个内置类,用于读取和写入属性文件。Properties 类提供了多种方法来读取和写入属性...

    Java 7文件操作

    在Java 7中,文件操作得到了显著的改进,引入了`java.nio.file`包,其中最重要的新特性之一就是Path类的出现。Path类是Java 7文件系统接口(FileSystem API)的核心部分,它提供了一种抽象的方式来表示文件或目录的...

    java properties文件操作工具类,可追加修改

    此工具类只用于Java后端在操作Properties文件的时候写的工具类,方便properties文件的存取操作

    java 文件操作类

    本文将深入探讨`File`类以及相关的实用方法,帮助你更好地理解和运用Java进行文件操作。 1. **File类的基本概念** `File`类是Java中的一个核心类,它代表了文件和目录路径名的抽象表示。通过`File`对象,我们可以...

    基于JAVA的常用文件操作方法

    在Java编程语言中,文件操作是一项基础且重要的任务。这篇博文主要探讨了如何使用Java进行常见的文件操作,包括创建、读取、写入、删除文件以及处理目录等。以下是对这些知识点的详细说明: 1. **创建文件**: 在...

    Java IO文件操作类与复制文件实例.rar

    Java IO文件操作类与复制文件实例,有关文本编辑、FileWriter文件写入、FileReade文件读娶DataStream文件数据流、BufferedReader文件暂存器、FileViewer文件浏览器、复制文件Copy等方面的操作要领,仅供学习参考。

    Java文件操作封装类

    Java文件操作封装类

    利用java操作Excel文件

    "Java操作Excel文件" Java操作Excel文件是指使用Java语言来读取和写入Excel文件的内容。下面是关于Java操作Excel文件的知识点总结: 一、读取Excel文件内容 在Java中,读取Excel文件内容可以使用jxl.jar这个开源...

    java实现对文件的各种操作的工具类.md

    # java实现对文件的各种操作的工具类 ## 可以实现的操作有: 1. 删除单个文件 2. 删除文件夹及文件夹下的文件 3. 使用文件流对单个文件进行复制 4. 复制整个文件夹内容(包含子文件夹中的所有内容) 5. ...

    java操作文件工具类

    文件工具类java操作文件工具类java操作文件工具类java操作文件工具类java操作文件工具类

    Java 上传文件到 SharePoint

    首先,我们需要了解Java中用于文件操作的基本类,如`java.io.File`,它提供了创建、读取、写入和删除文件的方法。此外,为了与SharePoint交互,我们需要使用Microsoft提供的客户端对象模型(Client Object Model,...

    java 模拟windows文件操作

    - **File类**: `java.io.File`是Java中最基础的文件操作类,可以用来表示文件或者目录路径。通过`new File(String path)`构造一个File对象,然后可以调用如`exists()`, `mkdir()`, `delete()`, `renameTo(File dest...

    java 文件操作

    首先,我们了解Java中进行文件操作的基础类:`java.io.File`。这个类是文件和目录路径名的抽象表示,它提供了许多与文件和目录相关的操作方法。 1. **文件对象的创建**: - 使用`new File(String path)`构造函数...

    java 随机读写Java类文件

    8. **注意事项**:对类文件的修改可能会导致Java虚拟机无法正确解析,因此这类操作需要谨慎,最好在理解了类文件结构和相关规范后再进行。 9. **相关工具与库**:有一些开源库如BCEL(Byte Code Engineering ...

    java获取文件创建时间

    在Java 7中引入了新的文件I/O API,即`java.nio.file`包,这使得开发人员能够更方便地操作文件系统,并且可以通过这些API获取文件的元数据,包括创建时间。 ##### 示例代码 以下是一个使用Java 7及以上版本来获取...

    java 通过poi操作excel jar包

    标题中的"java通过poi操作excel jar包"指的是使用Apache POI库来处理Excel文件的Java程序,通常需要引入特定版本的POI JAR包。在这个案例中,我们有两个版本的JAR包可供使用:poi_3.17.jar和poi_3.15.jar。这些版本...

    Java XML文件操作类:Dom4jHelper源文件下载.rar

    Java XML文件操作类:Dom4jHelper源代码文件下载,实现的功能:解析url xml文档,遍历解析文档,遍历解析元素,解析文件,获得根元素,修改xml某节点的值,输出文件路径及文件名 如果输出文件为null,则默认为原xml文件,...

    Java文本文件操作程序-写笔记软件.rar

    Java文本文件操作程序-写笔记软件,里面有比较多的文本操作函数,比如变形的构造函数,把File对象也放该函数内,以使引用FileIO对象的类更整洁,设置自动换行,自动换行则不会出现横向的滚动条,判断当前的状态是不是...

    自动读取mysql数据库字段并自动生成java属性和set和get方法

    在压缩包子文件的文件名称列表中,"FieldToRead--属性读写"可能表示的是一个实现此功能的具体文件,或者是一个示例,用于展示如何读取数据库字段并生成Java属性的读写方法。该文件可能是代码示例、配置文件或者是...

Global site tag (gtag.js) - Google Analytics