C#操作文件记录
2014-01-03 13:32
288 查看
1、读取普通文本文件,返回字符串
xml文件内容如下:
3、XmlTextWriter实现xml文件的写入操作
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();
相关文章推荐
- C#中文件操作的小结 由于有时候用到就忘了,所以记录一下,以便下次用到
- C# 自动查找文件内容(正则使用、获取目录下所有文件、多线程、日志记录,文件操作)
- !!无须定义配置文件中的每个变量的读写操作,以下代码遍历界面中各个c#控件,自动记录其文本,作为配置文件保存
- C#记录日志,文件操作
- 关于c#的config配置文件操作网上很多讲的和实际运用感觉不符,终于理解了一点点,记录一下
- c# 文件操作 对文件的添加 修改 删除
- C#操作文件之二
- C#中的文件操作
- iOS 文件操作,记录log日志。
- Android SD卡上文件操作及记录日志操作实例分析
- C#中对Web.config配置文件的操作(增删改读)
- C# 文件 操作
- Delphi关于记录文件的操作
- C# 操作文件夹及文件
- C#中对Web.config配置文件的操作(增删改读)
- C#提供的类库能够轻松实现对文件的操作
- c#操作Zip压缩文件
- C#文件操作
- C#操作Xml:如何定义Xsd文件
- 【C#】C# System.IO的一些文件操作