FileStream对文本进行读写操作

Posted green-jcx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FileStream对文本进行读写操作相关的知识,希望对你有一定的参考价值。

    class FileHelper
    {
  

        /// <summary>
        /// 检验文件路径是否合法
        /// </summary>
        /// <param name="path">文件路径</param>
        private static bool CheckPath(string path)
        {
            //正确格式:C:UsersjcxDesktopTest.txt
            string pattern = @"w{1}:([\].+)*.+.w{3,}";
            Regex rg = new Regex(pattern);
            return rg.IsMatch(path);
        }

        
       /// <summary>
       /// 创建一个新的文本文件
       /// </summary>
        /// <param name="path">文件路径</param>
       /// <param name="content">写入到文本的内容</param>
        public static void CreateNewTxtFile(string path,string content)
        {
            if (!CheckPath(path))
            {
                throw new Exception("文件路径不合法");
            }
            //存在则删除
            if (File.Exists(path))
            {
                File.Delete(path);
            } 

            using (FileStream fs=new FileStream (path,FileMode.CreateNew,FileAccess.Write))
            {
                byte[] bt = Encoding.Default.GetBytes(content);
                fs.Write(bt,0,bt.Length);

            } //using
        }

     
        /// <summary>
       /// 读取文本文件
       /// </summary>
       /// <param name="path">文件路径</param>
       /// <param name="readByte">指定每次读取字节数</param>
        /// <returns>读取的全部文本内容</returns>
        public static string ReadTxtFile(string path,long readByte)
        {
            if (!CheckPath(path))
            {
                throw new Exception("文件路径不合法");
            }

            StringBuilder result = new StringBuilder();
            using (FileStream fs=new FileStream (path,FileMode.Open,FileAccess.Read))
            {
                byte[] bt = new byte[readByte];

                while (fs.Read(bt,0,bt.Length)>0) //每次只从文件中读取部分字节数,一点点读
                {
                    string txt = Encoding.Default.GetString(bt);  //解码转换成字符串
                    result.AppendLine(txt);
                }

            } //using
            return result.ToString();

        }


    }

    class Program
    {
        static void Main(string[] args)
        {

            string path = @"C:UsersjcxDesktopTest.txt";

            FileHelper.CreateNewTxtFile(path, "好好努力");
            string r = FileHelper.ReadTxtFile(path,2);      //2个字节为一个汉字,一个汉字一个汉字的读
            Console.WriteLine(r);

        } // Main



    }

 

以上是关于FileStream对文本进行读写操作的主要内容,如果未能解决你的问题,请参考以下文章

FileStream和StreamreaderStreamWriter的区别

对FileStream的几种属性和方法认识

对FileStream的几种属性和方法认识

C#中基于FileStream的文本文件读写操作

FileStream类的使用

FileStream 类读写操作