Properties是啥?

import java.util.Properties;
public class Hello {
public static void main(String[] args) {
// 创建对象
Properties p = new Properties();
// 加入键值对
p.put("key1", "value1");
p.setProperty("key2", "value2");
// 获取键值对
String v2 = p.getProperty("key2");
System.out.println(v2); //打印结果:value2
String v3 = p.getProperty("key3", "value3");
System.out.println(v3); //打印结果:value3
}
}
Properties应用场景
properties文件是Java中的一种配置文件,文件后缀为.properties,内容格式为key=value,用#注释
获取
.properties文件的配置信息
package utils;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
public class MyPropertiesUtil {
public static void main(String[] args) {
Properties p = MyPropertiesUtil.load(
"src/main/resources/a.properties");
System.out.println(p.getProperty("name"));
System.out.println(p.getProperty("level"));
}
public static Properties load(String propertiesPath) {
Properties p = new Properties();
try {
p.load(new FileInputStream(new File(propertiesPath)));
} catch (IOException e) {
e.printStackTrace();
}
return p;
}
}
补充一个Scala版
package utils
import java.io.InputStreamReader
import java.util.Properties
object MyPropertiesUtil {
def main(args: Array[String]): Unit = {
val properties: Properties = MyPropertiesUtil.load("log4j.properties")
println(properties.getProperty("log4j.rootCategory"))
}
def load(propertiesName: String): Properties = {
val prop = new Properties();
prop.load(new InputStreamReader(
Thread.currentThread().getContextClassLoader.getResourceAsStream(propertiesName),
"UTF-8"))
prop
}
}

补充一个Python版
def read_file(file):
with open(file, encoding='utf-8') as f:
return f.read()
def properties2dict(properties):
dt = dict()
for r in properties.strip().split('\n'):
# 过滤properties注释
if r.startswith('#'):
continue
# 获取键值对
if r.find('=') > 0:
k, v = r.split('=', 1)
dt[k.strip()] = v.strip()
return dt
def get_properties(file):
properties = read_file(file)
dt = properties2dict(properties)
return dt
print(get_properties('a.properties'))

369



被折叠的 条评论
为什么被折叠?



