Java?file類(lèi)中renameTo方法操作實(shí)例
renameTo方法
public boolean renameTo(File dest),F(xiàn)ile類(lèi)中的renameTo方法可以操作文件或目錄。
1. 操作文件
1.1 在同一目錄下操作

1.重命名前的文件不存在。如圖1.1:若hello1目錄下無(wú)a.txt文件,或者h(yuǎn)ello1目錄根本不存在,執(zhí)行
renameTo方法會(huì)返回false。
2.重命名后的文件已存在。如圖1.1:若hello1目錄下已經(jīng)有一個(gè)aa.txt文件,執(zhí)行renameTo方法會(huì)返回false。
3.重命名前的文件存在,重命名后的文件不存在。如圖1.1:若hello1目錄下有a.txt文件,沒(méi)有aa.txt文件。執(zhí)行renameTo方法會(huì)返回true。hello1目錄下的a.txt文件被重名為aa.txt文件(a.txt文件消失)。
1.2 在不同目錄下操作

1.重命名前的文件不存在,如圖1.2:若hello1目錄下的a.txt文件不存在,或者該目錄根本就不存在,執(zhí)行renameTo方法會(huì)返回false。
2.重命名后的目錄不存在,如圖1.2:若hello2目錄不存在,執(zhí)行renameTo方法會(huì)返回false。
3.重命名后的文件已經(jīng)存在,如圖1.2:若hello2目錄下面已經(jīng)有一個(gè)aa.txt文件,執(zhí)行renameTo方法會(huì)返回false。
4.重命名前的文件存在,重命名后的文件不存在。如圖1.2:若hello1目錄下有一個(gè)a.txt文件,hello2目錄下無(wú)aa.txt文件,執(zhí)行renameTo方法會(huì)返回true。hello1目錄下的a.txt文件會(huì)被移動(dòng)到hello2目錄下被命名為aa.txt文件(hello1目錄下的a.txt文件消失)。
2.操作目錄
2.1在同一目錄下操作

1.重命名前的目錄不存在,如圖2.1:若hello11目錄不存在,執(zhí)行renameTo方法會(huì)返回false。
2.重命名后的目錄已存在,如圖2.1:若hello22目錄已經(jīng)存在,執(zhí)行renameTo方法會(huì)返回false。
3.重命名前的目錄存在,重命名后的目錄不存在。如圖2.1:若hello11目錄存在,hello22目錄不存在。執(zhí)行renameTo方法會(huì)返回true。執(zhí)行完renameTo方法。hello11目錄被命名為hello22(hello11目錄消失)。
2.2在不同目錄下操作

1.重命名前的目錄不存在,如圖2.2:若hello11目錄不存在,執(zhí)行renameTo方法會(huì)返回false。
2.重命名后的目錄已存在,如圖2.2:若hello2目錄下面已經(jīng)有一個(gè)hello22的子目錄,執(zhí)行renameTo方法會(huì)返回false。
3.重命名前的目錄存在,重命名后的目錄不存在。如圖2.2:若hello11目錄存在,hello22目錄不存在。執(zhí)行renameTo方法會(huì)返回true。執(zhí)行完renameTo方法。hello1目錄下的hello11目錄移動(dòng)到hello2目錄下被重命名為hello22(hello1目錄下的hello11目錄消失)。
File.renameTo()無(wú)效-解決
File.renameTo()在windows下運(yùn)行正常,可正常移動(dòng)文件。但在linux下就失敗了,代碼運(yùn)行正常,但文件沒(méi)有移動(dòng)。
這種情況下可以使用Files.move代替。
//import java.nio.file.*; //重命名文件 // new File(tempFile).renameTo(new File(outFile)); Files.move(Paths.get(tempFile), Paths.get(outFile), StandardCopyOption.REPLACE_EXISTING);
總結(jié)
到此這篇關(guān)于Java file類(lèi)中renameTo方法操作的文章就介紹到這了,更多相關(guān)Java file類(lèi)renameTo方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringMVC之RequestContextHolder詳細(xì)解析
這篇文章主要介紹了SpringMVC之RequestContextHolder詳細(xì)解析,正常來(lái)說(shuō)在service層是沒(méi)有request的,然而直接從controlller傳過(guò)來(lái)的話解決方法太粗暴,后來(lái)發(fā)現(xiàn)了SpringMVC提供的RequestContextHolder,需要的朋友可以參考下2023-11-11
spring項(xiàng)目實(shí)現(xiàn)單元測(cè)試過(guò)程解析
這篇文章主要介紹了spring項(xiàng)目實(shí)現(xiàn)單元測(cè)試過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
java byte數(shù)組與int,long,short,byte的轉(zhuǎn)換實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇java byte數(shù)組與int,long,short,byte的轉(zhuǎn)換實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10
Java中StringBuffer和StringBuilder_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
StringBuffer、StringBuilder和String一樣,也用來(lái)代表字符串。String類(lèi)是不可變類(lèi),StringBuffer則是可變類(lèi),任何對(duì)它所指代的字符串的改變都不會(huì)產(chǎn)生新的對(duì)象。本文重點(diǎn)給大家介紹String、StringBuffer、StringBuilder區(qū)別,感興趣的朋友一起看看吧2017-04-04
SpringBoot2.0整合WebSocket代碼實(shí)例
這篇文章主要介紹了SpringBoot2.0整合WebSocket代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
SSH框架網(wǎng)上商城項(xiàng)目第19戰(zhàn)之訂單信息級(jí)聯(lián)入庫(kù)以及頁(yè)面緩存問(wèn)題
這篇文章主要介紹了SSH框架網(wǎng)上商城項(xiàng)目第19戰(zhàn)之訂單信息級(jí)聯(lián)入庫(kù)以及頁(yè)面緩存問(wèn)題,感興趣的小伙伴們可以參考一下2016-06-06

