读取properties文件中内容

package readProperties;

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

public class ReadMethod {
	
	public String useIO(String name){
		/*
		 * 使用IO读取,注意文件位置不同时的路径问题
		 */
		 /*
		  * properties文件的管理类
		  */
		Properties pro = new Properties(); 
		FileInputStream fis = null;
		try {
			fis = new FileInputStream("user.properties");
			//fis = new FileInputStream("src/student.properties");
			//fis = new FileInputStream("src/readProperties/emp.properties");
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		try {
			/*
			 * 把文件加载到内存中(程序中)
			 */
			pro.load(fis); 
		} catch (IOException e) {
			e.printStackTrace();
		}
		String value = pro.getProperty(name);
		try {
			fis.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return value;
	}
	
	public String useClassLoader(String name){
		/*
		 * 使用类加载器来加载,文件需要在src目录下才可以加载,
		 * 所以如果读取user.properties会出现NullPointer,只可读
		 */
		//java.io.InputStream is = ReadMethod.class.getClassLoader().getResourceAsStream("readProperties/emp.properties");
		java.io.InputStream is = ReadMethod.class.getClassLoader().getResourceAsStream("student.properties");
		Properties pro = null;
		try {
			pro = new Properties();
			pro.load(is);
		} catch (IOException e) {
			e.printStackTrace();
		}
		String value = pro.getProperty(name);
		try {
			is.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return value;
	}
	
	public String useClass(String name){
		/*
		 * 使用Class这个类的getResourceAsStream()加载,
		 *	程序从当前类所在的包找,如果存在子包,需要加上
		 *	包名.当前类所在包外的资源无法
		 * 加载(无法加载student.properties和user.properties)
		 */
		java.io.InputStream is = ReadMethod.class.getResourceAsStream("emp.properties");
		Properties pro = new Properties();
		try {
			pro = new Properties();
			pro.load(is);
		} catch (IOException e) {
			e.printStackTrace();
		}
		String value = pro.getProperty(name);
		try {
			is.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		return value;
	}
	
	

	public static void main(String[] args) {
		
		ReadMethod rm = new ReadMethod();
		//System.out.print(rm.useIO("jack"));
		//System.out.print(rm.useClassLoader("tom"));
		System.out.print(rm.useClass("mike"));
	}

}

注意:初始化IO流会占用系统资源,所以用完后需要关闭所有流,否则会浪费系统资源

说明:user.properties位于工程包下与src平级,内容jack=123456;student.properties位于src下,内容tom=math;emp.properties位于src/readProperties,内容mike=IT。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值