您的位置:首页 > 编程语言 > Java开发

java对properties配置文件的读写操作

2015-01-26 18:10 555 查看
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

import org.junit.Test;

public class PropertiesTest {

public static void main(String[] args) {

}
/**
* 删除配置文件中的key
* @throws IOException
*
*/
@Test
public void delete() throws IOException{
Properties properties = new Properties();

File file = new File("test.properties");

FileInputStream fis = new FileInputStream(file);

properties.load(fis);

//必须先用map将所有的内容先保存,不然一删除,原来的内容都没了
Map<String, String> map = new HashMap<String, String>();

Set<Object> keySet = properties.keySet();

System.out.println(keySet.size());

for (Object object : keySet) {
String key = (String) object;
String value = (String) properties.get(key);
System.out.println(key+"="+value);
map.put(key, value);
}
//删除key
map.remove("age3");
properties.remove("age3");

for (java.util.Map.Entry<String, String> entry: map.entrySet()) {
properties.setProperty(entry.getKey(), entry.getValue());
}

FileOutputStream fos = new FileOutputStream(file);
properties.store(fos, "删除配置文件中的key:age3");

fos.close();

fis.close();

}

/**
* 对配置文件的修改
* @throws IOException
*/
@Test
public void update() throws IOException{

Properties properties = new Properties();

File file = new File("test.properties");

FileInputStream fis = new FileInputStream(file);

properties.load(fis);

//必须先用map将所有的内容先保存,不然一更新,原来的内容都没了
Map<String, String> map = new HashMap<String, String>();

Set<Object> keySet = properties.keySet();

System.out.println(keySet.size());

for (Object object : keySet) {
String key = (String) object;
String value = (String) properties.get(key);
System.out.println(key+"="+value);
map.put(key, value);
}

map.put("name", "李四");
map.put("age", "222");
map.put("age3", "222");

for (java.util.Map.Entry<String, String> entry: map.entrySet()) {
properties.setProperty(entry.getKey(), entry.getValue());
}
FileOutputStream fos = new FileOutputStream(file);

properties.store(fos, "更新配置文件");

fos.close();

fis.close();

}

/**
* 向配置文件写入内容
* @throws IOException
*/
@Test
public void write() throws IOException {
Properties properties = new Properties();

String file = "aa.properties";
FileOutputStream fos = new FileOutputStream(file);

properties.setProperty("aa", "123");
properties.setProperty("bb", "456");
properties.setProperty("cc", "789");
properties.setProperty("name", "张三");

properties.store(fos, "保存文件");

fos.close();
}

/**
* 读取配置文件
* @throws IOException
*/
@Test
public void read() throws IOException{
Properties properties = new Properties();

File file = new File("test.properties");

FileInputStream fis = new FileInputStream(file);

properties.load(fis);

Set<Object> keySet = properties.keySet();

for (Object object : keySet) {
System.out.println(object.toString()+"="+properties.getProperty(object.toString()));
}
}

}


本文出自 “江山如画待赢归” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: