业务场景:获取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文件中内容的编写如下,一般采用键值对形式