INI参数(文本文件)的读写
时间:2011-01-21
//参数(文本文件)的读写,by chillming
import java.io.*;
public class IniFile{
private String FileName = "";
public IniFile(String fn){
FileName = fn;
}
//返回参数的值
public String ReadPara(String Para,String PV){
String PName = "";
String PValue = PV;
String LineStr = "";
int pos = 0;
try{
BufferedReader RFile = new BufferedReader(new FileReader(FileName));
while(true){
try{
LineStr = RFile.readLine();
pos = LineStr.indexOf("=");
PName = LineStr.substring(0,pos).trim();
if(PName.equals(Para.trim())){
//找到
PValue = LineStr.substring(pos+1,LineStr.indexOf(";")).trim();
break;
}
}catch(NullPointerException e){
//文件尾
break;
}
}
RFile.close();
}catch (IOException e)
{
if(PV==null)PV = "";
return PV;
}
return PValue;
}
//更新或添加参数
public boolean WritePara(String PN,String PV){
String PName = "";
String PValue = "";
String LineStr = "";
String AllLines = "";
int pos = 0;
boolean isHere = false;
if(PV==null)PV = "";
try{
BufferedReader RFile = null;
try{
RFile = new BufferedReader(new FileReader(FileName));
}
catch(FileNotFoundException e){
//文件不存在
File file = new File(FileName);
file.createNewFile();
RFile = new BufferedReader(new FileReader(FileName));
}
while(true){
try{
LineStr = RFile.readLine();
pos = LineStr.indexOf("=");
PName = LineStr.substring(0,pos).trim();
PValue = LineStr.substring(pos+1,LineStr.indexOf(";")).trim();
if(PName.equals(PN)){
LineStr = PName + "=" + PV + ";\n";
isHere = true;
}else{
LineStr = PName + "=" + PValue + ";\n";
}
if(LineStr!=null && LineStr !=""){
AllLines += LineStr;
}
}catch(NullPointerException e){
//文件尾
break;
}
}
RFile.close();
}catch (IOException e) {
return false;
}
try{
BufferedWriter Fout=new BufferedWriter(new FileWriter(FileName));
if(!isHere){
LineStr = PN + "=" + PV + ";\n";
AllLines += LineStr;
}
Fout.write(AllLines);
Fout.close();
}catch (IOException e)
{
System.out.println("io error write");
return false;
}
return true;
}
//删除参数
public boolean DelPara(String PN){
String PName = "";
String LineStr = "";
String AllLines = "";
int pos = 0;
try{
BufferedReader RFile = new BufferedReader(new FileReader(FileName));
while(true){
try{
LineStr = RFile.readLine();
pos = LineStr.indexOf("=");
PName = LineStr.substring(0,pos).trim();
if(!PName.equals(PN)){
AllLines += LineStr + "\n";
}
}catch(NullPointerException e){
//文件尾
break;
}
}
RFile.close();
}catch (IOException e) {
return false;
}
try{
BufferedWriter Fout=new BufferedWriter(new FileWriter(FileName));
Fout.write(AllLines);
Fout.close();
}catch (IOException e)
{
return false;
}
return true;
}
public static void main(String args[]) {
String fn = "Config.txt";
String Pv = "";
//System.out.println(System.getProperty("user.dir"));
IniFile inifile = new IniFile(fn);
inifile.WritePara("java","chillming");
inifile.WritePara("java1","chillming1");
inifile.WritePara("java2","chillming2");
inifile.DelPara("java1");
Pv = inifile.ReadPara("java2","java2");
System.out.println(Pv);
Pv = inifile.ReadPara("java1","java1");
System.out.println(Pv);
Pv = inifile.ReadPara("java","java0");
System.out.println(Pv);
}
}
|