Java中Properties加载配置文件需确保路径正确与键值对解析安全,常用InputStream方式加载,注意ISO-8859-1默认编码导致中文乱码,应转义或指定UTF-8编码,同时规范键值分隔、注释及反斜杠转义。
Java中用Properties加载配置文件,核心就两点:正确读取文件路径、安全解析键值对。关键不在“能不能读”,而在“读得准不准、稳不稳”。
最常用的是通过输入流(InputStream)加载,避免硬编码路径或依赖类路径位置不准的问题。
getClass().getClassLoader().getResourceAsStream("config.properties")
new FileInputStream("/etc/myapp/config.properties")
PropertyResourceBundle(支持国际化,但一般配置不用)Properties默认按ISO-8859-

.properties文件时,把中文用Unicode转义(如name=\u4F60\u597D),这是最兼容的做法InputStreamReader指定UTF-8编码再加载:new InputStreamReader(new FileInputStream("config.properties"), "UTF-8")properties.load()
格式看着简单,但几处容易出错:
=或:分隔,空格会被当作键或值的一部分(除非用反斜杠转义)#或!开头是注释;空行被忽略\用于续行或转义,比如path=C:\\data\\log要写成path=C:\\\\data\\\\log,或用正斜杠path=C:/data/log更省事getProperty("key", "default")可设默认值,避免null异常别把Properties当万能配置工具——它只支持字符串键值对,没嵌套、没类型、没校验。
YAML或JSON + Jackson/GsonProperties只做兜底或本地调试用NullPointerException
基本上就这些。Properties本身不复杂,但路径、编码、转义这三块最容易踩坑。