A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 迷你卡卡 中级黑马   /  2013-10-22 20:19  /  1387 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 迷你卡卡 于 2013-10-23 14:57 编辑

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

评分

参与人数 1技术分 +1 收起 理由
haxyek + 1

查看全部评分

4 个回复

倒序浏览
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
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!");
}


回复 使用道具 举报
FileStream是用于文件 I/O 的类,StreamReader是用于从流读取和写入流的类

评分

参与人数 1技术分 +1 收起 理由
haxyek + 1

查看全部评分

回复 使用道具 举报
多谢两位的热情回答
回复 使用道具 举报
FileStream这个是对I/O的,
而StreamReader和StreamWriter是把文件当成文件流来操作的,
操作的过程和结果都一样。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马