您的位置:首页 > 编程语言 > C#

C#操作文件记录

2014-01-03 13:32 288 查看
1、读取普通文本文件,返回字符串
string filePath = @"f:\data.txt";
StreamReader sr = new StreamReader(filePath, System.Text.Encoding.Default);
String str = sr.ReadToEnd();
2、使用XmlDocument操作xml文件
xml文件内容如下:
<?xml version="1.0" encoding="utf-8"?>
<class>
<!--注释-->
<student sex="男" id="1">
<name>王小二</name>
<birthdate>201209</birthdate>
</student>
<student sex="女" id="2">
<name>李小丫</name>
<birthdate>199908</birthdate>
</student>
<student sex="男" id="3">
<name>张大大</name>
<birthdate>196009</birthdate>
</student>
</class>
使用XmlDocument需引入命名空间:using System.xml;
class Program
{
static void Main(string[] args)
{
string xmlFilePath = @"f:\test.xml";
Program p = new Program();
p.readXml(xmlFilePath,true);
// p.addXmlNode(xmlFilePath);
// Console.WriteLine("增加节点结束");
// p.deleteXmlNode(xmlFilePath);
// Console.WriteLine("删除节点结束");
p.updateXmlNode(xmlFilePath);
Console.Read();
}
//读取xml文件内容
private void readXml(string xmlFilePath,bool isContainsComment) {//isContainsConment用于标志xml文件中是否含有注释
List<Student> studentList = new List<Student>();

XmlDocument xmlDoc = new XmlDocument();
if (isContainsComment)
{
XmlReaderSettings xrSet = new XmlReaderSettings();
xrSet.IgnoreComments = true;
XmlReader xr = XmlReader.Create(xmlFilePath, xrSet);
xmlDoc.Load(xr);
xr.Close();
}
else
{
xmlDoc.Load(xmlFilePath);
}

XmlNode xn = xmlDoc.SelectSingleNode("class");
XmlNodeList xnl = xn.ChildNodes;

foreach (XmlNode xn0 in xnl)
{
Student stu = new Student();
XmlElement xe = (XmlElement)xn0;
stu.Sex = xe.GetAttribute("sex");
stu.Id = xe.GetAttribute("id");
XmlNodeList xnl0 = xe.ChildNodes;
stu.Name = xnl0.Item(0).InnerText;
stu.Birthdate = xnl0.Item(1).InnerText;

studentList.Add(stu);
}

foreach (Student stu0 in studentList)
{
Console.WriteLine(stu0.Name + "  " + stu0.Birthdate + "  " + stu0.Sex);
}
}
//增加xml节点
private void addXmlNode(string xmlFilePath) {
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlFilePath);

XmlNode xnRoot = xmlDoc.SelectSingleNode("class");

XmlElement xeNew = xmlDoc.CreateElement("student");
//属性
XmlAttribute xa = xmlDoc.CreateAttribute("sex");
xa.InnerText = "男";
xeNew.SetAttributeNode(xa);
XmlAttribute xa1 = xmlDoc.CreateAttribute("id");
xa1.InnerText = "4";
xeNew.SetAttributeNode(xa1);
//子元素
XmlElement xeChild = xmlDoc.CreateElement("name");
xeChild.InnerText = "新增加";
xeNew.AppendChild(xeChild);

XmlElement xeChild2 = xmlDoc.CreateElement("birthdate");
xeChild2.InnerText = "202201";
xeNew.AppendChild(xeChild2);

xnRoot.AppendChild(xeNew);

xmlDoc.Save(xmlFilePath);
}
//修改xml节点
private void updateXmlNode(string xmlFilePath) {
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlFilePath);
XmlElement xe = (XmlElement)xmlDoc.SelectSingleNode("/class/student[@id=\"1\"]");
xe.SetAttribute("sex","女");
xmlDoc.Save(xmlFilePath);
}
//删除xml节点
private void deleteXmlNode(string xmlFilePath) {
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlFilePath);
XmlElement xe = (XmlElement)xmlDoc.SelectSingleNode("/class/student[@id=\"4\"]");
xe.ParentNode.RemoveChild(xe);
xmlDoc.Save(xmlFilePath);
}
}


3、XmlTextWriter实现xml文件的写入操作
StreamWriter sw=new StreamWriter("f:\\test2.xml");
XmlTextWriter xtw = new XmlTextWriter(sw);
xtw.WriteStartDocument();
xtw.WriteStartElement("class");
xtw.WriteAttributeString("id","1");
xtw.WriteStartElement("student");
xtw.WriteAttributeString("id","01");
xtw.WriteString("wang");
xtw.WriteEndElement();
xtw.WriteEndElement();
xtw.WriteEndDocument();
sw.Flush();
sw.Close();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: