首页 新闻 会员 周边 捐助

文件读取(代码什么意思)为什么写在try里面

0
悬赏园豆:20 [已解决问题] 解决于 2015-05-11 19:13

string FileName = "ReaderCom";
if (File.Exists(FileName))
{
File.Delete(FileName);
}
try
{
using (StreamWriter w = File.Exists(FileName) ? File.AppendText(FileName) : File.CreateText(FileName))
{
w.Write(cbCom.Text);
w.Close();
}
}
catch
{

}

问题补充:

Using括号里面的是什么意思是(里面的)

米老鬼的主页 米老鬼 | 初学一级 | 园豆:140
提问于:2015-05-10 09:18
< >
分享
最佳答案
0

这段代码逻辑上可能不是很友好。大概意思是:先检查文件是否存在,如果存在则先删除文件。然后在写入指定内容。使用using的话,类似于try finally。使用try的话,用于捕捉文件读写异常。

StreamWriter w = File.Exists(FileName) ? File.AppendText(FileName) : File.CreateText(FileName)

 

判断文件是否存在,如果存在,就返回一个可以追加内容的写入流,否则,创建一个可以写入内容的写入流。

收获园豆:15
幻天芒 | 高人七级 |园豆:37207 | 2015-05-10 21:32
其他回答(3)
0

如果有另外个线程在使用这个文件的话,w.Write(cbCom.Text);就会抛异常。

Firen | 园豆:5385 (大侠五级) | 2015-05-10 10:44

using 那一段什么意思

???

支持(0) 反对(0) 米老鬼 | 园豆:140 (初学一级) | 2015-05-10 12:59
0

我有点不理解的是为啥要先删除文件,可能当初写这段代码的时候发现删除后在新建会报错吧

刘宏玺 | 园豆:14020 (专家六级) | 2015-05-10 12:03

USing那一段什么意思

支持(0) 反对(0) 米老鬼 | 园豆:140 (初学一级) | 2015-05-10 13:00

@米老鬼: using中声明的对象,在using语句块结束后会自动释放

支持(0) 反对(0) 刘宏玺 | 园豆:14020 (专家六级) | 2015-05-10 18:29
0

using中声明的对象,在using语句块结束后会自动释放。
比如连接资源SqlConnection,在使用后,需要释放的,有时候会忘记手动释放,虽然.Net的垃圾处理机制会做处理,但是那不可控制,用using(SqlConnection c />{
...
}
以后,但using的语句块执行完毕,conn会自动释放。

 

 

楼主如果还有疑问请继续追问, 没有问题的话请采纳吧  :)

收获园豆:5
请叫我头头哥 | 园豆:9382 (大侠五级) | 2015-05-10 16:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册