C# 读写XML文件封装, 直接按类来保存和读取
来源:互联网 发布:随机森林算法优化研究 编辑:程序博客网 时间:2024/06/05 16:04
using System;
using System.IO;
using System.Xml.Serialization;
using System.Collections.Generic;
using LogLib; // 如果没有加载该库,请删除所有logger
// add your data to here
public class ClientUserDefaultData
{
public LoginDefaultData loginData = new LoginDefaultData();
}
public class XMLUserDataDefaultMgr
{
private static bool canTryAgain = true;
private static string mFileName = null;
private static ClientUserDefaultData mUserDefaultData = new ClientUserDefaultData();
public static ClientUserDefaultData UserDefaultData
{
get { return mUserDefaultData; }
}
public static void InitWithFileName(string fileName)
{
if(fileName == null) return;
mFileName = fileName;// @"d:\SerializationOverview.xml"
Logger.Info("XMLUserDataDefaultMgr.....mFileName={0}", mFileName);
}
/* you must execute this function earier than ReadFromXML,
* executing first time after create role success,
* then you can execute each one making yourself */
public static void WriteToXML()
{
if(mFileName == null) return;
StreamWriter file = null;
try
{
file = new StreamWriter(mFileName);
Logger.Info("WriteToXML.....file open normal");
if(file == null) return;
XmlSerializer writer = new XmlSerializer(typeof(ClientUserDefaultData));
if(writer == null)
{
file.Close();
return;
}
writer.Serialize(file, mUserDefaultData);
Logger.Info("WriteToXML.....Serialize ok");
}
catch(IOException)
{
Logger.Info("WriteToXML.....cann't open needed file");
}
finally
{
if(file != null) file.Close();
Logger.Info("WriteToXML.....in finally");
}
file.Close();
}
public static void ReadFromXML()
{
if(mFileName == null) return;
StreamReader file = null;
XmlSerializer reader = null;
retry:
try
{
canTryAgain = false;
// open file
file = new StreamReader(mFileName);
Logger.Info("ReadFromXML.....file open normal");
// get de-serialize data format
if(file == null) return;
reader = new XmlSerializer(typeof(ClientUserDefaultData));
// do de-serialize
if(reader == null)
{
file.Close();
return;
}
mUserDefaultData = (ClientUserDefaultData)reader.Deserialize(file);
Logger.Info("ReadFromXML.....de-serialize ok");
}
catch (FileNotFoundException)
{
Logger.Info("ReadFromXML.....file not found");
WriteToXML();
if(canTryAgain)
goto retry;
}
catch(IOException)
{
Logger.Info("ReadFromXML.....cann't open needed file");
}
catch (InvalidOperationException)
{
Logger.Info("ReadFromXML.....deserialize error, may be is file not match");
}
finally
{
if(file != null) file.Close();
Logger.Info("ReadFromXML.....in finally");
}
file.Close();
}
}
// for save login information of user
public class LoginDefaultData
{
public bool bCheckBoxState = false;// default is false
public string strUserName = null;// default no
}
using System.IO;
using System.Xml.Serialization;
using System.Collections.Generic;
using LogLib; // 如果没有加载该库,请删除所有logger
// add your data to here
public class ClientUserDefaultData
{
public LoginDefaultData loginData = new LoginDefaultData();
}
public class XMLUserDataDefaultMgr
{
private static bool canTryAgain = true;
private static string mFileName = null;
private static ClientUserDefaultData mUserDefaultData = new ClientUserDefaultData();
public static ClientUserDefaultData UserDefaultData
{
get { return mUserDefaultData; }
}
public static void InitWithFileName(string fileName)
{
if(fileName == null) return;
mFileName = fileName;// @"d:\SerializationOverview.xml"
Logger.Info("XMLUserDataDefaultMgr.....mFileName={0}", mFileName);
}
/* you must execute this function earier than ReadFromXML,
* executing first time after create role success,
* then you can execute each one making yourself */
public static void WriteToXML()
{
if(mFileName == null) return;
StreamWriter file = null;
try
{
file = new StreamWriter(mFileName);
Logger.Info("WriteToXML.....file open normal");
if(file == null) return;
XmlSerializer writer = new XmlSerializer(typeof(ClientUserDefaultData));
if(writer == null)
{
file.Close();
return;
}
writer.Serialize(file, mUserDefaultData);
Logger.Info("WriteToXML.....Serialize ok");
}
catch(IOException)
{
Logger.Info("WriteToXML.....cann't open needed file");
}
finally
{
if(file != null) file.Close();
Logger.Info("WriteToXML.....in finally");
}
file.Close();
}
public static void ReadFromXML()
{
if(mFileName == null) return;
StreamReader file = null;
XmlSerializer reader = null;
retry:
try
{
canTryAgain = false;
// open file
file = new StreamReader(mFileName);
Logger.Info("ReadFromXML.....file open normal");
// get de-serialize data format
if(file == null) return;
reader = new XmlSerializer(typeof(ClientUserDefaultData));
// do de-serialize
if(reader == null)
{
file.Close();
return;
}
mUserDefaultData = (ClientUserDefaultData)reader.Deserialize(file);
Logger.Info("ReadFromXML.....de-serialize ok");
}
catch (FileNotFoundException)
{
Logger.Info("ReadFromXML.....file not found");
WriteToXML();
if(canTryAgain)
goto retry;
}
catch(IOException)
{
Logger.Info("ReadFromXML.....cann't open needed file");
}
catch (InvalidOperationException)
{
Logger.Info("ReadFromXML.....deserialize error, may be is file not match");
}
finally
{
if(file != null) file.Close();
Logger.Info("ReadFromXML.....in finally");
}
file.Close();
}
}
// for save login information of user
public class LoginDefaultData
{
public bool bCheckBoxState = false;// default is false
public string strUserName = null;// default no
}
0 0
- C# 读写XML文件封装, 直接按类来保存和读取
- C#读取XML文件数据和把数据保存至xml的方法
- C# WinForm中如何自定义config文件(XML文件),并且读取和保存它
- XML文件读取、保存
- C++通过文件读写流读取XML文件,并输出保存为XML文件
- C# 读写配置和xml文件
- C# XmlTextWriter和XmlTextReader 读写XML文件
- C# 简单封装一个XML文件读取类
- C# 简单封装一个XML文件读取类
- c#读写xml文件
- c#读写xml文件
- c#读写xml文件
- C#读写xml文件
- c#读写xml文件
- C#读写xml文件
- c# 读写xml文件
- C#读写xml文件
- C#读写xml文件
- HDU--2104--hide handkerchief--解题报告(辗转相除的运用)
- jiffies计数器
- 如何用HTML5开发安卓应用
- 获取tomcat中工程的绝对路径
- 监控数据库运行情况(三)
- C# 读写XML文件封装, 直接按类来保存和读取
- iOS开发Tips2
- java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider
- 在Ubuntu 64位OS上运行hadoop2.2.0[重新编译hadoop]
- 监控数据库运行情况(四)
- Git 使用的简单汇总
- Java多线程之wait(),notify(),notifyAll()
- android intent传递Parcelable对象
- 监控数据库运行情况(五)