项目中如何获取Java运行环境中的文件内容

业务场景:获取Java运行环境下的hsminfo.properties文件中,获取key为TESTRSAKEY的值

步骤:

1、获取Java运行环境的根目录,一般是jdk包下的jre文件;

2、通过File.separator拼接运行环境的根路径及目标文件的的名称;

3、使用全路径构建输入流,并将其包装在缓冲输入流中(此步可根据实际业务情况调整);

4、使用Properties类的load方法从输入流中加载属性。

static {
		try {
			String javaPath = System.getProperty("java.home");//D:\tool\jdk\jre
			String filePath = javaPath + File.separator + "hsminfo.properties";//D:\tool\jdk\jre\hsminfo.properties
			InputStream in = new BufferedInputStream(new FileInputStream(filePath));
			props.load(in);
			key = props.getProperty("TESTRSAKEY");

		} catch (Exception e) {
			System.out.println("初始化测试环境SM4key失败。");
		}
	}

 File.separator解释及拓展
在 windows 中 文件文件分隔符 用 ' \ ' 或者 ' / ' 都可以
但是在 Linux 中,是不识别 ' \ '  的,而 File.separator 是系统默认的文件分隔符号,在 UNIX 系统上,此字段的值为 ' / '
在 Microsoft Windows 系统上,它为 ' \ ' 屏蔽了这些系统的区别。
所以用 File.separator 保证了在任何系统下不会出错。
此外 File 类还有:
1、separatorChar
          与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。此字符串只包含一个字符
2、pathSeparatorChar   
          与系统有关的路径分隔符,为了方便,它被表示为一个字符串
3、pathSeparator
          此字符用于分隔以路径列表形式给定的文件序列中的文件名
          在 UNIX 系统上此字段为 ' : '
          在 Microsoft Windows 系统上,它为 ' ; '

props是一个Properties对象,而in是一个输入流。load方法会将输入流中的数据解析为属性键值对,并存储在props对象中。

拓展: hsminfo.properties文件中内容的编写如下,一般采用键值对形式

上一篇:基于Python实现矩阵数据的按列求和计算


下一篇:部署单节点k8s并允许master节点调度pod