犯这个错误的肯定不止我一个 关于File

File.Create(string filePath)这种用法所有人都知道,这两天用到的时候却发现一个问题。

需要先判断文件是否存在,如果不存在则创建文件,然后向该文件写入数据,后续定时Append数据进去。

如果文件已经存在,写入数据是完全没有问题的。当文件不存在的时候,创建完文件立刻向文件中写入文件的时候,报错,提示文件正在被其他程序占用。

最后找到原因是File创建完文件需要Close。。纳尼?我以前从来没有关闭过。。现在已经不敢回想以前写的东西了。

因为总记得Stream需要关闭,读写流需要Close,图片需要释放资源,所以默认感觉File是不需要Close的。

在找原因的时候看很多猿友也犯过这个错误,以后要记住啦。记一下,提醒自己。

时间: 2024-10-29 10:11:42

犯这个错误的肯定不止我一个 关于File的相关文章

[搬家from qzone] 我不是一个很好的学长,所以毕业前,给学习学妹们写写自己犯的错误吧

本人刚刚毕业,晚上的的时候听mm扯南操上的猥琐男传闻.额.....忍不住蛋碎一地,于是乎想想自己从刚大一走到现在遇到的各种各种,现在还是写下来,算是给学弟学妹以及还没入校的学弟学妹们留点东西吧.算是跟大家扯扯前面有多少坑,努力少掉下去几回,嗯.当然,有的坑,很有可能掉下去就...嗯,我们班目前:一个把自己扔进西湖再也没出来,一个吃了八片药然后被救起来了,劝退一个,挂到退学两个,留级退学一个,留级没退学的还两个.现在想想我还安全的毕业了,还是很欣慰的~ 想必所有人在大一都热血沸腾过,都用好奇的眼光

程序员在页面上常犯的错误以及改正方法

我是一个性情乖戾的Web用户,但我想这也帮助促使我成为了一名优秀的Web开发人员.当我看到一个网站上有让人不爽的设计时就会非常的恼怒,一些很简单的东西为什么做不好?下面是5种常见的可用性方面的错误,以及如何纠正这些问题的方法.给自己方便,也与人方便,确保自己不要犯这样的错误. 使用表达submit事件,不要用click事件:请用表单标签form! 我不知道遇到过多少次,当我使用回车键提交一个表单时(或手机上用箭头/输入键),却什么都没发生.我只好又用鼠标点击提交按钮,表单终于有了反应.这是我最痛

代码整洁之道,新手常犯的错误。

工作几年来,见过很多糟糕的代码.It是人口流动性很大的行业,如果不注重质量,那就是无数个坑.当需求变动,去改一段很长很糟糕第n手的代码时,内心是崩溃的,这就是国内IT的现状.下面是几个写出优质代码的好习惯,大部分公司没有硬性要求,所以很多人常犯这些错误.     1.形参的命名和数量. 变量命名的好建议是可以读出来的,有具体含义的,而不是mcount,amerber这种缩写的. 形参的数量最多控制在四个,再多就需要建对象.  2.临时变量的命名和数量. 临时变量的命名很多人不注意,比如s1,st

十个JAVA程序员容易犯的错误»

十个JAVA程序员容易犯的错误 ▉1. Array 转 ArrayList 一般开发者喜欢用: List<String> list = Arrays.asList(arr); Arrays.asList() 会返回一个ArrayList,这是Arrays里内嵌的一个私有静态类,而并不是java.util.ArrayList 类java.util.Arrays.ArrayList 有set(), get(), contains()方法,但并支持添加元素,所以大小是固定的,想要创建一个真正的Arr

JAVA中Long与Integer比较容易犯的错误

今天使用findbugs扫描项目后发现很多高危漏洞,其中非常常见的一个是比较两个Long或Integer时直接使用的==来比较. 其实这样是错误的. 因为Long与Ineger都是包装类型,是对象.  而不是普通类型long与int , 所以它们在比较时必须都应该用equals,或者先使用longValue()或intValue()方法来得到他们的基本类型的值然后使用==比较也是可以的. 但是有一种特殊情况, 其实Long与Integer都将 -128~127 这些对象缓存了.  可以看看Lon

Python新人常犯的错误有哪些?

Python 以其简单易懂的语法格式与其它语言形成鲜明对比,初学者遇到最多的问题就是不按照 Python 的规则来写,即便是有编程经验的程序员,也容易按照固有的思维和语法格式来写 Python 代码,有一个外国小伙总结了一些大家常犯的错误,我把他翻译过来并在原来的基础补充了我的一些理解,希望可以让你避开这些坑,更好的学习python. 0.忘记写冒号 在 if.elif.else.for.while.class.def 语句后面忘记添加 ":" if spam == 42 print(

犯个错误 在派出所跳楼,至于吗,这样不是给我们民警抹黑

mnesia在频繁操作数据的过程可能会报错:** WARNING ** Mnesia is overloaded: {dump_log, write_threshold},可以看出,mnesia应该是过载了.这个警告在mnesia dump操作会发生这个问题,表类型为disc_only_copies .disc_copies都可能会发生. 如何重现这个问题,例子的场景是多个进程同时在不断地mnesia:dirty_write/2 mnesia过载分析 1.抛出警告是在mnesia 增加dump

学过C#之后,对javascript数组容易犯的错误

javascript清空数组元素时,容易犯的错误: var myArray=[]: myArray = null:是错误的,个人感觉这样赋值后,myArray会从数组类型,变成字符串变量 清空数组元素,应该myArray = []; 或者myArray = new Array(); javascript中数组声明: var myArray=new Array(); 或者var myArray=[]: javascript中数组常用函数: toString():把数组转换成一个字符串 toLoca

DIV CSS制作网页时易犯的错误总结

CSS+DIV是网站标准(或称"WEB标准")中常用的术语之一,通常 为了说明与HTML网页设计语言中的表格(table)定位方式的区别,因为XHTML网站设计标准中,不再使用表格定位技术,而是采用css+div的 方式实现各种定位.应用应用DIV+CSS编码时很容易犯一些错误.本文列举了一些常见的错误: 1. 检查HTML元素是否有拼写错误.是否忘记结束标记 Webjx.Com 即使是老手也经常会弄错div的嵌套关系.可以用dreamweaver的验证功能检查一下有无错误. 网页教学