C#文件操作知识点总结(1)

1.可扩展标记语言XML(System.Xml;)

XML文件概述

XML被称为可扩展标记性语言,是eXtensible Markup Language是缩写。在.Net框架中是非常重要的一部分,它用于描述数据,是当前处理结构化文档信息的有力工具。

例:

<?xml version="1.0" encoding="utf-8" ?>

<Engineer>

  <ID>1002</ID>

  <Name>张靓</Name>

  <Age>20</Age>

  <!-- -->

  <ID>1001</ID>

  <Name>周杰</Name>

  <Age>22</Age>

</Engineer>

从上可看出XML特点:

Ø XML中用于描述的各个节点可以自由扩展,也就是说XML用于描述信息的标记不是固定不变的。

Ø XML文件中的节点区分大小写。

Ø XML中的每个标记通常被称为节点,它们是成对出现二期是必须成对出现的,用来描述这个节点存储的内容。

Ø XML只有一个跟节点且包含一个文档说明(头部声明)。

解析XML文件

操作XML的对象属性和方法

对象

属性和方法

说明

XmlDocument

DocumentElement属性

获取根节点

 

ChildNodes属性

获取所以子节点

 

Load()方法

读取整个XML的结构

XmlNode

InnerText属性

当前节点的值

 

Name属性

当前节点的名字

 

ChildNodes属性

当前节点的所以子节点

 

XmlDocument myXml = new XmlDocument();

            myXml.Load("XMLFile.xml");  //读取指定的XML文档

            XmlNode engineer = myXml.DocumentElement;   //读取XML的根节点

            foreach (XmlNode node in engineer.ChildNodes)   //对子节点进行循环

            {

                //将每个节点的内容显示出来

                switch (node.Name)

                {

                    case "ID":

                        Console.WriteLine("ID:{0}",node.InnerText);

                        break;

                    case "Name":

                        Console.WriteLine("姓名:{0}",node.InnerText);

                        break;

                    case "Age":

                        Console.WriteLine("年龄:{0}",node.InnerText);

                        break;

                }

            }

            Console.ReadLine();

动态绑定TreeView

TreeView的重要属性和事件

属性

说明

Nodes

TreeView控件中的所以树节点

SelectedNode

当前TreeView控件中选定的树节点,如果当前没有选定树节点,返回值为null

事件

说明

AfterSelect

选定树节点之后发生

 

 

 

 

代码:

  private void treeView1_AfterSelect(object senderTreeViewEventArgs e)

        {

            //判断节点层级,如不是根节点,选中时,在文本框显示相应的值

            if (this.treeView1.SelectedNode.Level != 0)

            { 

                //在文本框显示节点的文本

                this.textBox1.Text = e.Node.Text;

            }

        }

 

        //添加根节点

        private void button1_Click(object senderEventArgs e)

        {

            if (this.textBox1.Text != string.Empty)

            {

                //创建一个节点对象

                TreeNode rootNode = new TreeNode(this.textBox1.Text);

                //添加节点为TreeView根节点

                this.treeView1.Nodes.Add(rootNode);

            }

        }

 

        //添加子节点

        private void button2_Click(object senderEventArgs e)

        {

            if (this.textBox1.Text != string.Empty)

            {

                //创建一个子节点对象

                TreeNode childNode = new TreeNode(this.textBox1.Text);

                //添加节点为选定节点的子节点

                this.treeView1.SelectedNode.Nodes.Add(childNode);

            }

            else

            {

                MessageBox.Show("请选择一个根节点!");

            }

        }

Ø 删除选定的节点

this.treeView1.SelectedNode.Remove();

Ø 清空选择的节点的子节点

this.treeView1.SelectedNode.Nodes.Clear();

Ø 清空TreeView控件的所有的子节点

this.treeView1.Nodes.Clear();

2.文件操作(System.IO;)

C#程序读写一个文件需要以下五个基本步骤

① 创建文件流

② 创建阅读器或者写入器

③ 执行读写操作

④ 关闭阅读器或者写入器

⑤ 关闭文件流

 

例:

 

代码:

        //读取文件

        private void button2_Click(object senderEventArgs e)

        {

            openFileDialog1.Filter = "文本文件 *.txt|*.txt|C#文件 *.cs|*.cs";

            openFileDialog1.FileName = "文本文件.txt";

            openFileDialog1.ShowDialog();

            this.textBox1.Text = openFileDialog1.FileName;

            //创建文件流

            FileStream myFs = new FileStream(this.textBox1.TextFileMode.Open);

            //创建读取器

            StreamReader mySr = new StreamReader(myFs,Encoding.Default);

            //将文件内容读取到文本框

            string text = mySr.ReadToEnd();

            richTextBox1.Text = text;

            //关闭读取器

            mySr.Close();

            //关闭文件流

            myFs.Close();

        }

 

        //写入文件

        private void button1_Click(object senderEventArgs e)

        {

            //创建文件流

            FileStream myFs = new FileStream(textBox1.TextFileMode.CreateNew);

            //创建写入器

            StreamWriter mySw = new StreamWriter(myFs,Encoding.Default);

            //将文本框的内容写入文件中

            mySw.WriteLine(richTextBox1.Text);

            //关闭写入器

            mySw.Close();

            //关闭文件流

            myFs.Close();

        }