属性映射(propertymap)
属性映射(property map)
1.Properties类是什么?
Properties(Java.util.Properties),该类主要⽤于读取Java的配置⽂件,不同的编程语⾔有⾃⼰所⽀持的配置⽂件,配置⽂件中很多变量是经常改变的,为了⽅便⽤户的配置,能让⽤户够脱离程序本⾝去修改相关的变量设置。就像在Java中,其配置⽂件常为.properties⽂件,是以键值对的形式进⾏参数配置的。
是⼀个特殊类型的映射结构
**键与值都是字符串
这个映射可以很容易的保存到⽂件以及从⽂件加载**
有⼀个⼆级表存放默认值
构造器
Properties()
创建⼀个⽆默认值的空属性列表。
Properties(Properties defaults)
创建⼀个带有指定默认值的空属性列表。
常⽤⽅法
String getProperty(String key)
⽤指定的键在此属性列表中搜索属性。
vba定义动态数组String getProperty(String key, String defaultValue)
⽤指定的键在属性列表中搜索属性。
Object setProperty(String key, String value)
调⽤ Hashtable 的⽅法 put。
void store(OutputStream out, String comments) 将此Properties表中的此属性列表(键和元素对)以适合使⽤load(InputStream)⽅法加载到Properties表的格式写⼊输出流。此Properties⽅法不会写出此Properties表的defaults表中的属性(如果有)。
创建⼀个properties集合并打印
public static void writerToProperties()
{
//创建properties集合(不⽀持泛型<>)
Properties p=new Properties();
//键值对写⼊集合p
p.setProperty("url","cn.WriterPracticeNode");
p.setProperty("user","11171028");
p.setProperty("password","1028");
//打印集合
System.out.println(p);
}
运⾏结果:
⽤指定的键获取对应的值
//⽤指定的键获取对应的值
System.out.Property("user"));
会获得 11171028
将Properties集合中的键值对写⼊到⽂件中(store⽅法)
//创建properties集合
Properties p=new Properties();
//键值对写⼊集合p
p.setProperty("url","cn.WriterPracticeNode");
p.setProperty("user","11171028");
p.setProperty("password","1028");
//创建转换流 "test01_1_17.properties" 就是创建的⽂件名
OutputStream out=null;
try {
out = new BufferedOutputStream(new FileOutputStream("test01_1_17.properties")); } catch (FileNotFoundException e) {
e.printStackTrace();
}
//store ⽅法第⼆个参数 practiceNode是你要创建的⽂件⾥⾯第⼀句注解
try {
p.store(out,"practiceNode");
} catch (IOException e) {
e.printStackTrace();
}
将Properties集合中的键值对写⼊到⽂件中(list⽅法)
//属性集合类不⽀持泛型
Properties prop = new Properties();
//添加键值对
prop.setProperty("name", "zhangsan");
prop.setProperty("age", "10");
prop.setProperty("gender", "male");
PrintWriter pw = null;
try {
//创建⾃动刷新字符打印流对象
pw = new PrintWriter(new FileWriter(""),true);
comment是什么意思中文翻译java工作流引擎flowable//使⽤list()⽅法,把prop中的键值对写⼊到⽂件中
prop.list(pw);
} catch (IOException e) {
e.printStackTrace();
}finally {
if(pw != null)
pw.close();
}
}
读取properties⽅式
⼀、 使⽤java.util.Properties类的load(InputStream in)⽅法加载properties⽂件
public static String getPath1() {properties是什么文件
InputStream in=InputStream.nullInputStream();
try {
in=new BufferedInputStream(new FileInputStream(basePath));
/*"E:\\Java代码练习⽂件\\src\\com\\javase\\practiceNode\\Java\\propertiesPractice\\java\\practice.pro
perties"*/ Properties p=new Properties();
p.load(in);
Property("password");
渐变头发} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return password;
}tostring方法返回值类型
⽤ResourceBundle类的getBundle()⽅法
注意:这个getBundle()⽅法的参数只能写成包路径+properties⽂件名,否则将抛异常
//com/javase/practiceNode/Java/propertiesPractice/java/practice
Bundle(basePath).getString("password");
⽤PropertyResourceBundle类的构造函数
PropertyResourceBundle p = null;
try {
p= new PropertyResourceBundle(new FileInputStream(basePath));
password= p.getString("password");
} catch (IOException e) {
e.printStackTrace();
}
return password;
使⽤java.lang.ClassLoader类加载器的getSystemResourceAsStream()静态⽅法
//"com/javase/practiceNode/Java/propertiesPractice/java/practice.properties"
InputStream in = SystemResourceAsStream(basePath);
try {
Properties propertie=new Properties();
propertie.load(in);
Property("password");
} catch (IOException e) {
e.printStackTrace();
}
return password;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论