properties 属性文件的读写在开发中也经常使用,主要以key-value 键值对的形式写入,我所知道
的有用于 国际化,就是将 中文-其它语言 对应 起来,当用户选择了相应的语言时,就读入相应的properties
文件,就可将整个项目换成另一种语言了。我在项目中也用到对属性文件的读写,用于玩家注册模块,因为玩家
注册时生成的地图坐标是随机的,如果在当玩家注册账号时从数据库查询比较慢,如果同一时间注册的人数比较
多,并发的访问量就大, 我是预先从数据库中生成几百条可供注册的坐标点到属性文件,玩家注册时,直接从
文件取数据,然后更新数据库,如果文件中数据量很少时,就重新再生成指定数量的坐标点就可以了,下面是
用到相关的读写代码,已经去除了项目中的数据操作
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
/**
* @author zjq june 2 2010 properties 文件读写
*
*/
public class PropertiesUtil {
public void createPropertiesFile(String fileName) {
File file = new File(fileName);
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public void removeKeyFromFile(String filePath, Properties prop, int key) {
Map saveMap = new HashMap();
Iterator it = prop.keySet().iterator();
System.out.println(prop.keySet().size());
for (int i = 1; it.hasNext(); i++) {
String k = (String) it.next();
if (k.equals(key + "")) {
i--;
continue;
}
String v = prop.getProperty(k);
saveMap.put(i + "", v);
}
prop.clear();
prop.putAll(saveMap);
try {
OutputStream out = new FileOutputStream(filePath);
prop.store(out, "Last Update," + new Date() + " Deletion: key:"
+ "1");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 更新文件
*/
public void updateFile(int key, String filePath) {
Properties prop = new Properties();
try {
prop.load(new FileInputStream(filePath));
String value = prop.getProperty(key + "");
// **改变value值,重新写入***
OutputStream fos = new FileOutputStream(filePath);
prop.put(key + "", value);
// 将此 Properties 表中的属性列表(键和元素对)写入输出流
prop.store(fos, " Update '" + value + "' value");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
.properties 文件读写
最新推荐文章于 2022-07-07 20:10:24 发布