c#文件读写

 class Program
    {
        /// <summary>
        /// 使用fileStream对文件进行读
        /// </summary>
        static char[] FileStreamReadMeathod()
        {
            //-------FileStream对文件的读
            /*           因为FileStream主要用于读取字节和字节数组,也就是二进制数据,所以它不能指定编码格式,
                        但是如果我们用它来读取有中文的文本的话,我们就会发现它会乱码,因为默认的编码是UTF8,
                        所以我们必须用System.Text.Encoding.GetEncoding("GB2312").GetChars()进行转码,
                        这样很麻烦,所以我们通常不用FileStream读写有中文的文本。*/
            byte[] byData = new byte[100];
            char[] charData = new char[1024];
            FileStream file = new FileStream("test.txt", FileMode.Open);
            file.Seek(1, SeekOrigin.Begin);//指定从流的什么地方开始读
            file.Read(byData, 0, 100);//读取几个字符
            Decoder d = Encoding.Default.GetDecoder();
            d.GetChars(byData, 0, byData.Length, charData, 0);
            //Console.WriteLine(charData);
            file.Close();
            return charData;

        }
       /// <summary>
        /// 使用Filestream进行写入文件
       /// </summary>
       /// <param name="dataStr">要写入文件的内容</param>
        static void FileStreamWriteMeathod(string dataStr)
        {
            FileStream fs = new FileStream("t1.txt",FileMode.Create);
            byte[] data = System.Text.Encoding.Default.GetBytes(dataStr);
            fs.Write(data,0,data.Length);
            //清空缓存区,关闭流
            fs.Flush();
            fs.Close(); 
        }
        /// <summary>
        /// 使用StreamReader对文件进行读
        /// </summary>
        static string StreamReaderMethod()
        {

            StreamReader sr = new StreamReader("test.txt", Encoding.UTF8);
            string allText = sr.ReadToEnd();//全部读完

            return allText;
            //下面是一行一行的读直到全部读完
            /* string line;
             while ((line = sr.ReadLine()) != null)
             {
                 Console.WriteLine(line);
             }*/

            /*****************************************************
            //初始化StreamReader类有很多种方式。下面我罗列出几种
            StreamReader sr1 = new StreamReader(@"c:\temp\utf-8.txt"); 
            // 同样也可以指定编码方式 
            StreamReader sr2 = new StreamReader(@"c:\temp\utf-8.txt", Encoding.UTF8);

            FileStream fs = new FileStream(@"C:\temp\utf-8.txt", FileMode.Open, FileAccess.Read, FileShare.None); 
            StreamReader sr3 = new StreamReader(fs); 
            StreamReader sr4 = new StreamReader(fs, Encoding.UTF8);

            FileInfo myFile = new FileInfo(@"C:\temp\utf-8.txt"); 
            // OpenText 创建一个UTF-8 编码的StreamReader对象 
            StreamReader sr5 = myFile.OpenText();

            // OpenText 创建一个UTF-8 编码的StreamReader对象 
            StreamReader sr6 = File.OpenText(@"C:\temp\utf-8.txt");
            *******************************************************/

        }
        /// <summary>
        /// 使用FileStream类创建文件,使用StreamWriter类,将数据写入到文件。
        /// </summary>
        /// <param name="data"></param>
        static void StreamWriterTest(string data)
        {
            FileStream fs = new FileStream("t2.txt",FileMode.Create);
            StreamWriter sw = new StreamWriter(fs);
            sw.Write(data);
            sw.Flush();
            sw.Close();


            /*****************************************
             * 初始化StreamWriter类同样有很多方式:
            // 如果文件不存在,创建文件; 如果存在,覆盖文件 
            StreamWriter sw1 = new StreamWriter(@"c:\temp\utf-8.txt"); 

            // 也可以指定编码方式 
            // true 是 append text, false 为覆盖原文件 
            StreamWriter sw2 = new StreamWriter(@"c:\temp\utf-8.txt", true, Encoding.UTF8);

            // FileMode.CreateNew: 如果文件不存在,创建文件;如果文件已经存在,抛出异常 
            FileStream fs = new FileStream(@"C:\temp\utf-8.txt", FileMode.CreateNew, FileAccess.Write, FileShare.Read); 
            // UTF-8 为默认编码 
            StreamWriter sw3 = new StreamWriter(fs); 
            StreamWriter sw4 = new StreamWriter(fs, Encoding.UTF8);

            // 如果文件不存在,创建文件; 如果存在,覆盖文件 
            FileInfo myFile = new FileInfo(@"C:\temp\utf-8.txt"); 
            StreamWriter sw5 = myFile.CreateText();
            ****************************************/
        }
    }

猜你喜欢

转载自blog.csdn.net/qwsx789/article/details/50961177