需求:当不想修改代码中的参数时,该如何处理?读取本地文件?读取程序的可配置文件?直接上代码,看注释说明:

1、先在工程名新建file文件夹,再新增file文件,扩展名必须是properties结尾的文件,其他文件格式或许会报错:

配置文件的内容是key=value的格式 

# key=value
name=udemy
course=java+python

2、再新建一个读取配置文件的类: 

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

public class ReadPropertiesDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// java提供了配置文件的类,里面有提供方法怎么读取配置文件,读取的配置文件名必是properties
		// java的工具类提供了properties读取配置文件的参数,描述如何取值,灵活处理参数的变更,不用修改代码,只要修改属性文件
		// 配置文件的格式采用key=value,java实现通过properties的key来获取value
		Properties prop = new Properties();
		// java读取路径是双斜杠\\,或是使用反斜杠/,对于工程 ${basedir}相对路径,也可以是绝对路径
		String path = "./files/conf.properties";
		try {
			// 读取文件流,创建对象,读取本地文件的字节数据,
			FileInputStream file = new FileInputStream(path);
			try {
				// 出现两个try 。。。catch的捕获嵌套,
				// 是因为,上面那个try异常比较小,是FileNotFoundException异常,如果下面那个变成Exception或是IOException编译就不会提示有异常需要处理
				prop.load(file); // 加载文件方法重载了几个选择
				// getProperty()是Properties里面的方法,用指定的属性key来获取对应的value
				System.out.println("name的值:" + prop.getProperty("name")
						+ ", course的值: " + prop.getProperty("course"));

				// String str=prop.getProperty("name");
				// System.out.println(str);
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				System.out.println("读取配置文件异常!");
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("获取文件异常!");
		}
	}

}

3、结果输出就是:

name的值:udemy, course的值: java+python

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐