写入文件

2015-03-22 16:27:31  访问(2497) 赞(0) 踩(0)


        #region 写入文件

        /// <summary>
        /// 写入文件
        /// </summary>
        /// <param name="fileName">文件名</param>
        /// <param name="textValue">文件内容</param>
        public void WriteFile
            (
                string fileName,
                string textValue
            )
        {
            WriteFile(fileName, textValue, null, true, true);
        }

        /// <summary>
        /// 写入文件
        /// </summary>
        /// <param name="fileName">文件名</param>
        /// <param name="textValue">文件内容</param>
        /// <param name="textEncoding">编码</param>
        public void WriteFile
            (
                string fileName,
                string textValue,
                System.Text.Encoding textEncoding
            )
        {
            WriteFile(fileName, textValue, textEncoding, true, true);
        }

        /// <summary>
        /// 写入文件
        /// </summary>
        /// <param name="fileName">文件名</param>
        /// <param name="textValue">文件内容</param>
        /// <param name="textEncoding">编码</param>
        /// <param name="IsOverwrite">是否覆盖</param>
        public void WriteFile
            (
                string fileName,
                string textValue,
                System.Text.Encoding textEncoding,
                bool IsOverwrite
            )
        {
            WriteFile(fileName, textValue, textEncoding, IsOverwrite, true);
        }

        /// <summary>
        /// 写入文件
        /// </summary>
        /// <param name="fileName">文件名</param>
        /// <param name="textValue">文件内容</param>
        /// <param name="textEncoding">编码</param>
        /// <param name="IsOverwrite">是否覆盖</param>
        /// <param name="IsAppend">是否追加</param>
        public void WriteFile
            (
                string fileName,
                string textValue,
                System.Text.Encoding textEncoding,
                bool IsOverwrite,
                bool IsAppend
            )
        {
            if (fileName == null || fileName.Length == 0)
            {

                throw new Exception
                    (
                        "方法:"
                        + MethodBase.GetCurrentMethod().ReflectedType.FullName
                        + " "
                        + MethodBase.GetCurrentMethod().ToString()
                        + " 发生异常:"
                        + "传入参数:"
                        + "string fileName"
                        + "为null或为空。"
                    );
            }

            FileInfo info = new FileInfo(fileName);

            if (info.Exists)
            {
                // 文件存在,且不覆盖 //
                if (!IsOverwrite)
                {

                    throw new Exception
                        (
                            "方法:"
                            + MethodBase.GetCurrentMethod().ReflectedType.FullName
                            + " "
                            + MethodBase.GetCurrentMethod().ToString()
                            + " 发生异常:"
                            + "文件" + info.FullName + "已存在,并且不允许覆盖。"
                        );
                }

                // 如果不是追加 //
                if (!IsAppend)
                {
                    File.Delete(info.FullName);
                }
            }
            else
            {
                // 创建目录 //
                if (!info.Directory.Exists)
                {
                    Directory.CreateDirectory(info.Directory.FullName);
                }
            }


            FileStream fs = null;

            StreamWriter m_streamWriter = null;

            try
            {
                //创建一个文件流,用以写入或者创建一个StreamWriter
                fs = new FileStream(info.FullName, FileMode.OpenOrCreate, FileAccess.Write);

                if (textEncoding == null)
                {
                    m_streamWriter = new StreamWriter(fs);
                }
                else
                {
                    m_streamWriter = new StreamWriter(fs, textEncoding);
                }

                m_streamWriter.Flush();

                //  使用StreamWriter来往文件中写入内容
                if (IsAppend)
                    m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);

                m_streamWriter.Write(textValue);
                m_streamWriter.Flush();
            }
            catch (Exception err)
            {
                throw err;
            }
            finally
            {
                if (m_streamWriter != null)
                {
                    m_streamWriter.Flush();
                    m_streamWriter.Close();
                }

                if (fs != null)
                {
                    fs.Close();
                }

                m_streamWriter = null;

                fs = null;
            }
        }

        #endregion 写入文件



标签:C#    写入文件    FileStream    WriteFile 

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)