关于java中的properties的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于java中的properties的问题相关的知识,希望对你有一定的参考价值。
我在工程下有一个user.properties文件,
我用pp.load(ATM.class.getClassLoader().getResourceAsStream("resource/user.properties"));
把它读了出来,之后用setProperty进行修改
我想问一下最后怎么把它再存入到user.properties文件中去?
怎么用store方法?参数怎么写?
求大神啊~~
// 类加载器默认就到src目录下面去找配置文件,同样适用javaee工程,你的问题是路径问题,看我下面的示例:
ClassLoader cl = DaoFactory.class.getClassLoader();
// dao.properties配置在src下面的cn/itcast/xml/model下面。
InputStream is = cl.getResourceAsStream("cn/itcast/xml/model/dao.properties");
// dao.properties直接配置在src下面。
// InputStream is = cl.getResourceAsStream("dao.properties");
请采纳。 参考技术A Properties p = new Properties();
OutputStream out;
try
out = new FileOutputStream("c:\\proper.properties");
p.store(out, "aaaaaaaaaa");
catch (FileNotFoundException e)
e.printStackTrace();
catch (IOException e)
e.printStackTrace();
Java 程序 关于Properties 类使用Store方法时不能会覆盖以前Properties 文件的内容
F:\\Demo.properties 文件内容:
#\u65B0\u589E\u4FE1\u606F
#Wed Sep 14 11:16:24 CST 2016
province=广东
tt=近蛋
city=佛山市
java代码:
public static void test() throws IOException {
FileWriter writer = new FileWriter("F:\\Demo.properties");
FileReader reader = new FileReader("F:\\Demo.properties");
Properties p = new Properties();
p.load(reader);
System.out.println(p);
p.setProperty("dd", "中建普联");
p.setProperty("cc", "狗娃");
p.setProperty("bb", "狗剩");
p.setProperty("aa", "铁蛋");
p.store(writer, "新增信息");
System.out.println(p);
reader.close();
writer.close();
}
控制台输出:
{}
{dd=中建普联, aa=铁蛋, bb=狗剩, cc=狗娃}
出现的问题:
一,读取的内容为空,
二,没有覆盖以前Properties 文件的内容
原因是:
FileWriter writer = new FileWriter("F:\\Demo.properties");
FileWriter 打开文件的方式默认是覆盖,就是一旦执行了上面这句,那么原有文件中的内容被清空
所以你在还没有p.load(in);加载Properties的时候就把文件清空了
修改后如下 :
public static void test() throws IOException {
FileReader reader = new FileReader("F:\\Demo.properties");
Properties p = new Properties();
p.load(reader);
System.out.println(p);
p.setProperty("dd", "中建普联");
p.setProperty("cc", "狗娃");
p.setProperty("bb", "狗剩");
p.setProperty("aa", "铁蛋");
FileWriter writer = new FileWriter("F:\\Demo.properties");
p.store(writer, "新增信息");
System.out.println(p);
reader.close();
writer.close();
}
控制台输出:
{province=广东, tt=近蛋, city=佛山市}
{dd=中建普联, province=广东, tt=近蛋, aa=铁蛋, bb=狗剩, city=佛山市, cc=狗娃}
问题解决:
是因为FileWriter 打开文件的方式默认是覆盖,
就是一旦执行了上面这句,那么原有文件中的内容被清空
所以你在还没有p.load(in);加载Properties的时候就把文件清空了
所以 一定要注意打开 FileWriter 的时机,来把握 FileWriter writer = new FileWriter("F:\\Demo.properties"); 代码位置
以上是关于关于java中的properties的问题的主要内容,如果未能解决你的问题,请参考以下文章