黑马程序员技术交流社区

标题: 有关文件操作的问题 [打印本页]

作者: 迷你卡卡    时间: 2013-10-22 20:19
标题: 有关文件操作的问题
本帖最后由 迷你卡卡 于 2013-10-23 14:57 编辑

FileStream这个类可以对文件操作,而StreamReader和StreamWriter也是来操作文件的,
那么使用FileStream和StreamReader、StreamWriter有什么对比优劣吗?
什么情况下适合用FileStream?什么时候又适合用StreamReader、StreamWriter呢?

作者: 许庭洲    时间: 2013-10-22 21:09
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
static
void Main(string[] args)
{
       //读文件代码
        byte[]m_bDataRead = new byte[100];
        char[]m_cDataRead = new char[100];
        try
       {
             FileStreamm_FileStream = new FileStream(@"c:\file.txt", FileMode.Open);
             m_FileStream.Seek(0, SeekOrigin.Begin);
             m_FileStream.Read(m_bDataRead,0, 100);
       }
       catch(IOException ex)
       {
             Console.WriteLine("There is an IOException");
             Console.WriteLine(ex.Message);
             Console.ReadLine();
             return;
      }
      //用UTF8编码将字节数组转换为字符数组
      Decoderm_Dec = Encoding.UTF8.GetDecoder();
      m_Dec.GetChars(m_bDataRead, 0,m_bDataRead.Length, m_cDataRead, 0);
      Console.WriteLine("Read From File Succeed!");
      Console.WriteLine(m_cDataRead);
      Console.ReadLine();
       return;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
static void Main(string[] args)
{
         try
         {
              StreamWriter m_sw = new StreamWriter(@"c:\file.txt", true);
              m_sw.WriteLine("Another File Operation Method");
              m_sw.Close();
          }
          catch (IOException ex)
          {
               Console.WriteLine(ex);
               return;
         }
         Console.WriteLine("Write to File Succeed!");
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
static void Main(string[] args)
{
         try
         {
                StreamReader m_sr = new StreamReader(@"c:\file.txt");
                string m_data = m_sr.ReadToEnd();
                Console.WriteLine(m_data);
                m_sr.Close();
         }
         catch (IOException ex)
         {
              Console.WriteLine(ex);
              return;
         }
        Console.WriteLine("Write to File Succeed!");
}



作者: Liu阳    时间: 2013-10-22 21:32
FileStream是用于文件 I/O 的类,StreamReader是用于从流读取和写入流的类
作者: 迷你卡卡    时间: 2013-10-23 14:57
多谢两位的热情回答
作者: aihuahuaxx    时间: 2013-10-23 18:02
FileStream这个是对I/O的,
而StreamReader和StreamWriter是把文件当成文件流来操作的,
操作的过程和结果都一样。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2