string s1 = @”D:\iosample\pp.txt”; |
|
20分 |
StreamWriter sw = new StreamWriter(s1, false, Encoding.GetEncoding(“gb2312”))
sw.WriteLine(“我好想熊”); sw.Flush(); sw.Close(); |
20分 |
StreamWriter sw = new StreamWriter(s1, false, Encoding.GetEncoding(“gb2312”))
sw.WriteLine(“我好想熊”); 使用完了sw,需要关闭流 添一句 sw.Close(); 因为必须调用 Close 以确保所有数据正确写出到基础流中。 详情参考MSDNhttp://msdn.microsoft.com/zh-cn/library/system.io.streamwriter.close(v=vs.95) |
5分 |
加上 sw.Close(),
|
10分 |
1.打开盒子
2.装入东西 span style=”color: #FF0000;”>3.关上盒子 要完整 |
8分 |
在VS里不用考虑是否关闭流,会自动关闭的!
|
20分 |
假设经常多用户访问此文件,那么及时关闭此Stream可定可以提搞成功了。
简单地写sw.Close();是不足够的,因为当出现异常时,这个Close就根本不执行。所以这种写法不对。你所说的“写Using而不写Close”才是真正可以保证即使抛出异常时也可以及时Close的。楼上不写Using而写Close的代码,全都忘记了类似Using一样“在抛出异常时也要执行Close”这个要求。 |
10分 |
那么及时关闭此Stream可定可以提搞成功了 –> 那么及时关闭此Stream肯定可以提高成功率
打个比方说,假设经常有几十个线程同时写入同一个文件,遇到异常就不再写入了(或者等待一段时间之后才写入)。你可以拿个纸笔笔划一下,当你写Using{}的时候,由于可以确保“即使出错也能立刻关闭sw”,那么其它写入线程就能顺利成功;而假设当出现异常时你的代码并不执行sw.Close,那么此后的一大堆线程就连锁反应出现了错误,这就是灾难性的。 所以需要写using{}。 |
7分 |
StreamWriter sw = new StreamWriter(s1, false, Encoding.GetEncoding(“gb2312”))
sw.WriteLine(“我好想熊”); sw.Flush(); sw.Close(); |
StreamWriter sw = new StreamWriter(s1, false, Encoding.GetEncoding(“gb2312”))
try { sw.WriteLine(“我好想熊”); sw.Flush(); sw.Close(); } catch (Exception e) { sw.Close(); } |
|
StreamWriter sw = new StreamWriter(s1, false, Encoding.GetEncoding(“gb2312”))
try { sw.WriteLine(“我好想熊”); sw.Flush(); } catch (Exception e) { //do sth.. } finally { sw.Close(); } |