这段代码建立了file.txt文件,但是没有写入,我找不到原因,各位帮我看看
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;namespace FileStreamProject
{
    class Program
    {
        static void Main(string[] args)
        {
            byte[] m_bDataWrite = new byte[100];
            char[] m_cDataWrite = new char[100];            try
            { 
                FileStream m_FileStream=new FileStream (@"C:\file.txt",FileMode.OpenOrCreate );
                m_cDataWrite ="My First File Operation".ToCharArray ();
                Encoder m_Enc=Encoding.UTF8.GetEncoder();
                m_Enc.GetBytes(m_cDataWrite,0,m_cDataWrite.Length,m_bDataWrite,0,true );
                m_FileStream.Seek (0,SeekOrigin .Begin );
                m_FileStream.Write (m_bDataWrite ,0,m_bDataWrite.Length);            }
            catch(IOException ex)
            {
                
            }
            Console .WriteLine ("Write to File Succeed!");
            Console.ReadLine();
            return;
        }
    }
}

解决方案 »

  1.   

    楼主的代码中,数据还在缓冲区中,
    m_FileStream.Flush();   是把缓冲区中的数据写到基础设备;如果这时打开文件,文件中有内容.
    m_FileStream.Close();     解除锁定状态,断开文件连接.这时,可以对文件作删除操作.
      

  2.   

      byte[] m_bDataWrite = new byte[100];
                char[] m_cDataWrite = new char[100];
                FileStream m_FileStream = new FileStream(@"C:\file.txt", FileMode.OpenOrCreate,FileAccess.ReadWrite);
                m_cDataWrite = "My First File Operation".ToCharArray();
                Encoder m_Enc = Encoding.UTF8.GetEncoder();
                m_Enc.GetBytes(m_cDataWrite, 0, m_cDataWrite.Length, m_bDataWrite, 0, true);
                m_FileStream.Seek(0, SeekOrigin.Begin);
                m_FileStream.Write(m_bDataWrite, 0, m_bDataWrite.Length);            Console.WriteLine("Write to File Succeed!");
                Console.ReadLine();
                return;
    没任何问题啊~可以创建也正确写入了