properties文件的读取
当我们想读取city.properties文件时,我们可以用Reader字符输入流:
try (FileReader reader = new FileReader("D:\\IO流\\city.properties")) {
for(;;) {
int n=reader.read();
if (n==-1) {
break;
}
System.out.println((char)n);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
输出结果:
1
=
X
i
a
n
2
=
B
a
o
j
i
3
=
X
i
a
n
y
a
n
g
那如果我们想将这个文件以键值对的格式读取出来呢?我们可以将字符输入流加载到一个Properties对象中,这样我们就可以将文件中的内容以加载成key-value文件读取出来:
try (FileReader reader = new FileReader("D:\\IO流\\city.properties")) {
//创建一个Properties对象
Properties p=new Properties();
//将输入流加载到Properties对象中
p.load(reader );
System.out.println(p);
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
输出结果:{3=Xianyang, 2=Baoji, 1=Xian}
怎么证明它是一个键值对文件呢?当我们可以通过它唯一的key键查询到它对应的值的时候,就说明它是一个键值对文件:
value1=p.get("1");
System.out.println(value1);
输出结果:Xian
properties文件的写入
当我们想将一些信息以键值对的形式保存起来时:
//创建一个Properties对象
Properties p=new Properties();
p.put("wyj",String.valueOf(888));
try (FileWriter write = new FileWriter("D:\\IO流\\name.properties")) {
p.store(write,"This is a beautiful girl");
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
注意:
①put()方法中的参数必须是字符串,否则会出现以下错误:
②store()方法的参数一:要写入的目标文件
参数二:要写入的注释
运行结果:
//第一行注释是我们通过store()方法手动加入的
//第二行注释是自动生成的当前时间注释