C#操作文件记录

来源:互联网 发布:ipad软件下载助手 编辑:程序博客网 时间:2024/05/18 01:06
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();





0 0
原创粉丝点击