亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

java file.renameTo返回false的原因及解決方案

瀏覽:4日期:2022-08-09 10:46:11
java file.renameTo返回false原因

需要對文件夾下的文件重命名,發(fā)現(xiàn)返回false了,先用main方法測試,發(fā)現(xiàn)沒問題,如下

public static void main(String[] args) throws IOException {File file1 = new File('D:aabb.xml');File file2 = new File('D:ccdd.xml');boolean b = file1.renameTo(file2);System.out.println(b); // true }

最后發(fā)現(xiàn),是一個文件是用文件流寫的,流沒用close,導(dǎo)致文件重命名失敗了,模擬如下

public static void main(String[] args) throws IOException {File file1 = new File('D:aabb.xml');FileWriter out = new FileWriter(file1);File file2 = new File('D:ccdd.xml');boolean b = file1.renameTo(file2);System.out.println(b);// false }最終也是很好解決

找個合適的地方close就好了

public static void main(String[] args) throws IOException {File file1 = new File('D:aabb.xml');FileWriter out = new FileWriter(file1);out.close();File file2 = new File('D:ccdd.xml');boolean b = file1.renameTo(file2);System.out.println(b);//true }java File.renameTo方法,需要注意的坑

最近在接手老項目的時候,遇到File.renameTo(File file)方法,不清楚特性,于是研究了下源碼,發(fā)現(xiàn)底層調(diào)用的是Native方法實現(xiàn)的。

本身帶著對其用法的困惑,寫了一個測試用例來揭開它的神秘面紗,發(fā)現(xiàn)兩個在使用時值得注意的點。

測試用例代碼如下:

import java.io.File;import java.io.IOException; public class TestRenameTo { public static void main(String[] args) { File file = new File('f:1.txt'); if (!file.isFile()) { try {file.createNewFile(); } catch (IOException e) {e.printStackTrace(); } } //調(diào)用renameTo()前 System.out.println(file.exists()); file.renameTo(new File('f:2.txt')); //調(diào)用renameTo()后 System.out.println(file.exists()); }}

第一次運(yùn)行程序,目錄下1.txt和2.txt均不存在

得到結(jié)果如下:

java file.renameTo返回false的原因及解決方案

java file.renameTo返回false的原因及解決方案

可以看出調(diào)用renameTo前后,1.txt先是存在,然后消失,最后文件夾中生成了2.txt。

為了方便比較第二次結(jié)果,往2.txt寫入些內(nèi)容,“hello world!”(原諒我的中二 ^-^)

java file.renameTo返回false的原因及解決方案

第二次運(yùn)行程序,目錄下已存在2.txt,得到結(jié)果如下:

java file.renameTo返回false的原因及解決方案

java file.renameTo返回false的原因及解決方案

java file.renameTo返回false的原因及解決方案

2.txt中的內(nèi)容并沒有被替換掉,證明此次重命名沒有成功。

總結(jié): 如果被重命名的文件已存在,那么renameTo()不會成功 renameTo()成功后,原文件會被刪除

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 亚洲精品自拍视频 | 911香蕉视频 | 美国人妖欧美性xxxxk妖 | 黑人操亚洲女人视频 | 国产jjzzjjzz视频全部 | 午夜激情福利视频 | 搜索黄色录像 | 国产主播在线观看 | 一区二区不卡视频在线观看 | 国产啪精品视频网免费 | 在线免费污视频 | 日本韩国一级片 | 成 人 黄 色 大 片 | 欧美一级a俄罗斯毛片 | 黄色福利片| 亚洲第一区在线 | 国产一区二区三区在线观看视频 | 香蕉在线视频网站 | 91嫩草国产线免费观看 | 久久羞羞 | 一节毛片 | 一级毛片黄色片 | 欧洲最暴性xxxⅹ | 欧美久久久久欧美一区 | 成人永久免费高清 | 播放一级黄色录像 | 极品美女一级毛片免费 | 亚1洲二区三区四区免费 | 日本大片成人免费网址 | 亚洲第五页 | 91久久综合 | 精字窝地址二永久2021 | 国产一级αv片免费观看 | 在线成人看片 | 中国一级特黄特爽刺激大片 | 国产亚洲人成网站观看 | 精品一区二区在线观看 1080p | 久久成人国产精品 | 国产精品伊人 | 免费一级毛片正在播放 | 2022年国产精品久久久久 |