本人老菜鸟一枚,不是因为偶是菜鸟中的老手,而是偶是老了但是还是很菜的鸟╮(╯▽╰)╭,不过打今儿起偶想要腾飞……

今天写文本文件编辑类时遇到一个小问题,下面先将问题描述一下:

1、写文本文件时都会习惯性的判断一下文件是否存在,如果不存在就创建一个出来,也就是下面的代码

 if (!File.Exists(logPath))
{
File.Create(logPath);
}

看起来似乎没什么问题,但是很不凑巧的,问题就是来了,下面几种写文本的方式,在第一次建立文本文件的时候数据都写不进去。

 File.WriteAllText(logPath, msg);

 File.WriteAllLines(logPath,msg);
 byte[] buffer = Encoding.Default.GetBytes(msg);
FileStream myFileStream = new FileStream(logPath, FileMode.Append, FileAccess.Write);
myFileStream.Write(buffer, , buffer.Length);
myFileStream.Close();
myFileStream.Dispose();

经查阅,由此方法创建的 FileStream 对象的 FileShare 值默认为 None;直到关闭原始文件句柄后,其他进程或代码才能访问这个创建的文件。也就是说必须要关闭,要关闭,要关闭,下面就是问题的解决办法:(https://msdn.microsoft.com/zh-cn/library/d62kzs03(VS.80).aspx)

if (!File.Exists(logPath))
{
File.Create(logPath).Close();
}

其实,File.WriteAllText(),FileStream中好多写入文本的方法都默认新建文件,但是本老菜鸟还是觉得判断一下比较好,毕竟可以避免那些不会新建文件的方法报错。

欢迎指正,共同进步。

最新文章

  1. JS Date.parse() 函数详解
  2. AC日记——C’s problem(c) TYVJ P4746 (清北学堂2017冬令营入学测试第三题)
  3. XE5 修复 安卓 输入法隐藏 后 无法退出的问题 3.2
  4. bash命令行返回值和展开
  5. alter和alert防错?
  6. [改善Java代码]适时选择getDeclaredxxx和getxxx
  7. QMessageBox 弹出框上的按钮设置为中文
  8. MVC client validation after PartialView loaded via Ajax MVC3中 弹出 Dialog时候 提交的时候 使用 Jquery 不验证 form表单 的解决办法
  9. USACO3.41Closed Fences(几何)
  10. javascript代码混淆原理
  11. MYSQL C API 记录
  12. 初始化仓库(git init)
  13. MaxCompute安全管理指南-基础篇
  14. 继承RelativeLayout 自定义布局
  15. (其他)Thinkpad笔记本装系统
  16. 拜托!面试请不要再问我Spring Cloud底层原理[z]
  17. 1-2Controller之Session
  18. Linux下网卡混杂模式设置和取消
  19. Proxy源代码分析——谈谈如何学习Linux网络编程
  20. LeetCode 32 Longest Valid Parentheses(最长合法的括号组合)

热门文章

  1. Burpsuite专题学习指南
  2. 搭建websocket消息推送服务,必须要考虑的几个问题
  3. css 进度条的文字根据进度渐变
  4. step(iter)、epoch、batch size之间的关系
  5. 『配置』服务器搭建 Office Online Server2016 实现文档预览
  6. swoole websocket_server 聊天室--群聊
  7. idea创建django项目
  8. flask 模型一对多个人理解
  9. 玩转控件:重写/重绘Dev中MessageBox弹窗控件
  10. Java序列化和反序列化-(新手)