(FileSystem)写入文本文件的三种方法

        /// 
        /// 写入文本文件
        /// 
        /// 
        /// 
        private void button3_Click(object sender, EventArgs e)
        {
            /*
             写入文本文件主要有FileStream、StreamWriter、AppendAllText()等三种方法。
             前两种是基础方法,各种编程语言都有类似方法,而最后一种是.NET 2.0新增的功能
             只用于.NET
             AppendAllText()比较简单,遇到更为复杂的写入使用FileStream和StreamWriter更合适。
             两者用完之后要及时关闭或销毁对象。
             */
            #region         使用FileStream写入文本文件
#if false
            //以追加模式打开文件,写入内容时将默认从文件末尾开始写入。
            //当文件不存在时,创建该文件,注意写入时字符编码
            using (FileStream fs = new FileStream(this.tbFile.Text, FileMode.Append, FileAccess.Write))
            {
                string content = "\r\n" + this.textBox3.Text;
                //将文件指针偏移指定位置。
                //fs.Seek(fs.Length, SeekOrigin.Begin);
                //以UTF-8编码写入
                //fs.Write(Encoding.UTF8.GetBytes(content),0,Encoding.UTF8.GetByteCount(content));
                //以GBK编码写入
                fs.Write(Encoding.GetEncoding("GBK").GetBytes(content), 0, Encoding.GetEncoding("GBK").GetByteCount(content));
                fs.Close();
                MessageBox.Show("已写入");
            }
#endif
            #endregion      使用FileStream写入文本文件
            #region         使用StreamWriter方法写入文本文件
#if false
            //通过File.AppendText()创建StreamWriter对象写入文本
            //StreamWriter sw = File.AppendText(this.tbFile.Text);
            //若追加则将第二个参数设为true,若覆盖原文件则为false
            StreamWriter sw = new StreamWriter(this.tbFile.Text,true,Encoding.GetEncoding("GBK"));
            //开始写入
            sw.Write("\r\n"+this.textBox3.Text);
            //清空缓冲区
            sw.Flush();
            //关闭流
            sw.Close();
            MessageBox.Show("已写入");
#endif
            #endregion      使用StreamWriter方法写入文本文件
            #region         使用AppendAllText方法写入文本文件
#if true
            //使用AppendAllText()追加文本的方法。可设定字符集编码。
            //读取和写入时字符集编码要相同,否则会出现乱码。

            //如果文件存在则追加文本
            //如果文件不存在则创建它,并写入文本。
            //默认以UTF-8编码写入
            //File.AppendAllText(this.tbFile.Text, this.textBox3.Text + "\r\n", Encoding.UTF8);
            //如果字符集选择了ASCII,那么写入的汉字将变为乱码
            //File.AppendAllText(this.tbFile.Text, this.textBox3.Text + "\r\n", Encoding.ASCII);
            //以GBK编码写入
            File.AppendAllText(this.tbFile.Text, this.textBox3.Text + "\r\n", Encoding.GetEncoding("GBK"));
#endif
            #endregion      使用AppendAllText方法写入文本文件
        }

你可能感兴趣的:(C#)