需要对文件进行写入;
循环写一些数据,一种是在循环外面建立streamwrite初始化然后关闭,一种是在循环内建立初始化关闭。即
  streamwrite sw =new streamwrite(path.true);
   for(int i=0;i <100000;i++)
{  
  代码获取str;
   sw.writeline(str)
}
sw.close();  for(int i=0;i <100000;i++)
{  
streamwrite sw =new streamwrite(path.true);
  代码获取str;
   sw.writeline(str);
sw.close();
}
这2种的差别怎样?哪种效率高点。str是需要读文件的并且有点大。

解决方案 »

  1.   

    每次close都会写入磁盘如果不close,sw.writeline(str)会将str先写入磁盘缓存,效率会高很多但是这样的问题在于“代码获取str;”抛出异常,那文件就不可靠了用using包含起来,可以保证一定将缓存写入硬盘磁道using( streamwrite sw =new streamwrite(path.true))
    {
        for(int i=0;i <100000;i++)
        {   
            代码获取str;
            sw.writeline(str)
        }
    }
      

  2.   

    就这两段代码来说,第二种是非常业余...因为IO是计算机最慢的瓶颈,应该尽可能减少IO访问...但是要注意...假如不是这么简单的代码,在循环内外是两种完全不同的逻辑,没有可比性...