
java如何添加一个属性文件
用户关注问题
我想在Java程序中使用外部属性文件来配置参数,该如何正确加载并读取这些属性文件内容?
使用Properties类加载属性文件
可以使用Java内置的Properties类来加载属性文件。首先,通过InputStream读取属性文件,然后调用Properties.load()方法加载内容。示例代码:
Properties prop = new Properties();
try (InputStream input = new FileInputStream("config.properties")) {
prop.load(input);
} catch (IOException e) {
e.printStackTrace();
}
这样就可以通过prop.getProperty("key")来获取相应的属性值。
我在项目中添加了一个属性文件,不确定放在哪个目录下才能让Java程序顺利读取,哪种做法更合适?
将属性文件放在类路径下便于读取
将属性文件放到src/main/resources或类路径下是常见做法。这样可以通过类加载器获得输入流,方便读取。例如:
InputStream input = getClass().getClassLoader().getResourceAsStream("config.properties");
把属性文件放在类路径内部,打包后依然能被访问,不需要使用绝对路径,便于项目管理和部署。
属性文件中包含中文内容,但读取后显示乱码,有何方法保证中文正确读取?
使用InputStreamReader指定编码读取
Java默认以ISO-8859-1编码读取properties文件,中文会产生乱码。解决方法是使用InputStreamReader指定UTF-8编码,如下:
try (InputStreamReader reader = new InputStreamReader(new FileInputStream("config.properties"), "UTF-8")) {
Properties prop = new Properties();
prop.load(reader);
}
也可以将中文内容转成Unicode编码格式存储,避免乱码。