因为项目需要,写了一个properties文件的存储与读取一些系统变量。
在有中文的情况下,文件存储正常,文件读取有问题,读取出来的value是一些格式化的字符,例如:\u2050;
properties文件读取代码:
public PropertiesAnalyze(){
prop = new Properties();
File f = new File(this.path);
BufferedReader read = null;
try {
read = new BufferedReader(new FileReader(f));
String tempString = read.readLine();
// 一次读入一行,直到读入null为文件结束
while (tempString != null) {
// tempString = tempString.trim();
if(tempString.contains("=")){
String s[] = tempString.split("=");
this.map.put(s[0].trim(), s[1].trim());
}
tempString = read.readLine();
}
read.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if (read != null) {
try {
read.close();
} catch (IOException e1) {
}
}
}
}
使用这种方式读取出来的就是中文“乱码”。
之后改用properties类来读取文件:
public PropertiesAnalyze(){
prop = new Properties();
File f = new File(this.path);
BufferedReader read = null;
try {
read = new BufferedReader(new FileReader(f));
prop.load(read);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if (read != null) {
try {
read.close();
} catch (IOException e1) {
}
}
}
}
用这种方式读取文件中的中文字符没有问题。
分享到:
2012-01-30 16:43
浏览 7031
评论