java使用java.util.Properties读取properties文件的九种方法

原创 2016年08月30日 23:49:58

直接上代码:

package com.test.test;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.Enumeration;
import java.util.Locale;
import java.util.Properties;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;

import org.springframework.core.io.support.PropertiesLoaderUtils;

public class TestProperties {
	private static TestProperties testProperties = new TestProperties();
	public static void main(String[] args) {
		//获取properties配置文件中的值
		Properties prop = new Properties();
		try {
			prop.load(test1());//包含2种方法
			prop.load(test2());//包含2种方法
			prop.load(testProperties.test3());//包含2种方法
			//使用spring-core包封装好的方法
			prop = PropertiesLoaderUtils.loadAllProperties("test.properties");
			Enumeration<?> e = prop.propertyNames();
			while (e.hasMoreElements()) {
				String key = (String) e.nextElement();
				System.out.println(key+"="+new String(prop.getProperty(key).getBytes("ISO-8859-1"),"UTF-8"));
			}
			test4();
			test5();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
	/**
	 * 使用FileInputStream文件输入流
	 * @return
	 */
	public static InputStream test1(){
		InputStream in = null;
		try {
			//此处是相对于项目的相对路径
			//in = new FileInputStream("src/main/resources/test.properties");
			//或
			in = new BufferedInputStream(new FileInputStream("src/main/resources/test.properties"));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
        return in;
	}
	/**
	 * 使用ClassLoader
	 * 默认从classPath路径下找文件
	 * @return
	 */
	public static InputStream test2(){
		//InputStream in = ClassLoader.getSystemResourceAsStream ("test.properties");
		//或
		InputStream in = testProperties.getClass().getClassLoader().getResourceAsStream("test.properties");
		return in;
	}
	/**
	 * 使用class变量的getResourceAsStream()方法
	 * 文件名前不加“/”,则表示从当前类所在的包下查找该资源
	 * 文件名前加了“/”,则表示从classPath路径下查找资源
	 * @return
	 */
	public InputStream test3(){
		//InputStream in = getClass().getResourceAsStream("/test.properties");
		//或
		InputStream in = TestProperties.class.getResourceAsStream("/test.properties");
		return in;
	}
	/**
	 * 使用java.util.ResourceBundle类的getBundle()方法
	 * Locale.getDefault():没有提供语言和地区的资源文件是系统默认的资源文件
	 * test:不需要文件的后缀
	 */
	public static void test4(){
		try {
			ResourceBundle rb = ResourceBundle.getBundle("test", Locale.getDefault());
			Enumeration<String> e1 = rb.getKeys();
			while (e1.hasMoreElements()) {
				String key = e1.nextElement();
				System.out.println(key+"="+new String(rb.getString(key).getBytes("ISO-8859-1"),"UTF-8"));
			}
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
	}
	/**
	 * 使用java.util.PropertyResourceBundle类的构造函数
	 */
	public static void test5(){
		InputStream in = ClassLoader.getSystemResourceAsStream ("test.properties");
		try {
			ResourceBundle rb = new PropertyResourceBundle(in);
			Enumeration<String> e1 = rb.getKeys();
			while (e1.hasMoreElements()) {
				String key = e1.nextElement();
				System.out.println(key+"="+new String(rb.getString(key).getBytes("ISO-8859-1"),"UTF-8"));
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
	
}

test.properties文件中的内容是:
name=天若有情
password=天亦老
运行程序后控制台输出test.properties文件中的内容。

版权声明: 举报

相关文章推荐

java使用java.util.Properties读取properties文件的九种方法

package com.test.test; import java.io.FileInputStream; import java.io.FileNotFoundException; import...

java各种读取properties文件方法

java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是"键=值"的格式,在properties文件中,可以用"...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

Java读取.properties文件的方法

1.建立一个包config,专门存放.properties等配置文件,在config包下建一个文件a.properties,为了便于测试,在a.properties下添加如下信息:   name...

java读取Properties文件的方法

使用J2SE API读取Properties文件的六种方法 1。使用java.util.Properties类的load()方法 示例: InputStream in = lnew Buffe...

用java读取properties文件

from:http://duqiangcise.iteye.com/blog/319793 注:如果path前面有 “/” 的话,“/”的意思是以编译目录。 例:普通java项目的/bin目录,j...

使用J2SE API读取Properties文件的六种方法

使用J2SE API读取Properties文件的六种方法 1。使用java.util.Properties类的load()方法 示例: InputStream in = lnew Buffer...

java读取properties文件方法

简介     我们在做一些Java应用开发的时候,会将很多环境特定的变量定义到一个配置文件中。比较常见的定义文件有xml, properties,甚至txt等格式的。在Java里有一个类似于标准配置...

JAVA properties文件的读取

一个properties文件的读取搞了一下午,终于搞好了,总结下经验: private static final String propertiesName = "/filePath.propert...

Java读取properties文件的六种方法

使用J2SE API读取Properties文件的六种方法 1。使用java.util.Properties类的load()方法 示例: InputStream in = lnew Buffe...

java读取.properties配置文件的几种方法

读取.properties配置文件在实际的开发中使用的很多,总结了一下,有以下几种方法(仅仅是我知道的): 一.通过jdk提供的java.util.Properties类         ...
  • Hnkuo
  • Hnkuo
  • 2017-03-28 13:52
  • 107
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)