写这个玩意,只为让我本人记住,百度了N久无法解决的问题,希望对看官有所帮助!
io中的重命名方法renameTo这个方法,让人很蛋疼...
解释的也让人崩溃:百度了,谷歌了...说是跟当前系统文件格式有关系(我暂时不知道);
我的目的很简单:
1.循环创建,26个txt文件;
2.开始循环批量修改这些文件名;
试验结果:两种情况
情况1:
可以成功创建,但是无法进行批量修改;
情况2:
在已经有的文件基础上,就是已经存在26个文件的前提下,可以成功进行批量修改!
分析:
1.其实,在系统文件上,进行创建文件和修改动作,都是调用的当前系统底层的功能!
2.我单次,可以实现两个功能的其中一个,另外一个一定会失败,我个人猜测这个与系统资源有关系!
3.我尝试用两条线程来完成此操作:线程1去创建,成功后给个反馈,然后调用线程2,去进行批量修改!
结果失败的..为什么?
又继续分析:
我再想是不是系统资源没放掉啊?
就在线程1完成创建后,调用了一次GC.....System.gc();
然后在启动线程2,去进行批量修改;
瞬间...........天晴了.....................哈哈.............
其实核心就是释放掉系统底层调用的资源...好比一个工具,你用完了,放那里,然后我也要去用!
我是一个小菜比...这问题碰巧被我遇见了.. 我纠结了很久....希望对和我一样纠结的看官有所帮助!