Java中使用Files類的copy()方法實(shí)現(xiàn)復(fù)制文件
使用Files類的copy()方法復(fù)制文件
在 Java 里,java.nio.file.Files 類的 copy() 方法可用于復(fù)制文件或目錄。
下面為你提供使用 copy() 方法復(fù)制文件的示例代碼:
簡(jiǎn)單文件復(fù)制示例
以下代碼將一個(gè)文件從源路徑復(fù)制到目標(biāo)路徑。
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class FileCopyExample {
public static void main(String[] args) {
// 源文件路徑
String sourceFilePath = "path/to/source/file.txt";
// 目標(biāo)文件路徑
String targetFilePath = "path/to/target/file.txt";
Path sourcePath = Paths.get(sourceFilePath);
Path targetPath = Paths.get(targetFilePath);
try {
// 復(fù)制文件
Files.copy(sourcePath, targetPath);
System.out.println("文件復(fù)制成功");
} catch (IOException e) {
System.err.println("文件復(fù)制失敗: " + e.getMessage());
}
}
} 代碼解釋
1)指定路徑:定義了源文件路徑 sourceFilePath 和目標(biāo)文件路徑 targetFilePath。
2)創(chuàng)建 Path 對(duì)象:利用 Paths.get() 方法依據(jù)文件路徑創(chuàng)建 Path 對(duì)象。
3)復(fù)制文件:調(diào)用 Files.copy() 方法將源文件復(fù)制到目標(biāo)路徑。
4)異常處理:使用 try-catch 塊捕獲并處理可能出現(xiàn)的 IOException 異常。
覆蓋已存在的目標(biāo)文件
若目標(biāo)文件已存在,Files.copy() 方法會(huì)拋出 FileAlreadyExistsException 異常。
若你想覆蓋已存在的目標(biāo)文件,可使用 StandardCopyOption.REPLACE_EXISTING 選項(xiàng)。
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
public class FileCopyWithReplace {
public static void main(String[] args) {
String sourceFilePath = "path/to/source/file.txt";
String targetFilePath = "path/to/target/file.txt";
Path sourcePath = Paths.get(sourceFilePath);
Path targetPath = Paths.get(targetFilePath);
try {
Files.copy(sourcePath, targetPath, StandardCopyOption.REPLACE_EXISTING);
System.out.println("文件復(fù)制成功(覆蓋已存在文件)");
} catch (IOException e) {
System.err.println("文件復(fù)制失敗: " + e.getMessage());
}
}
}在這個(gè)示例中,StandardCopyOption.REPLACE_EXISTING 選項(xiàng)作為第三個(gè)參數(shù)傳遞給 Files.copy() 方法,這表明如果目標(biāo)文件已存在,會(huì)對(duì)其進(jìn)行覆蓋。
你需要把 "path/to/source/file.txt" 和 "path/to/target/file.txt" 替換為實(shí)際的文件路徑。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot運(yùn)用AOP來實(shí)現(xiàn)分布式鎖的示例代碼
本文主要介紹了通過注解和AOP實(shí)現(xiàn)分布式鎖的方案,包含鎖過期時(shí)間、等待超時(shí)設(shè)置及自動(dòng)續(xù)約功能,利用定時(shí)任務(wù)監(jiān)控鎖狀態(tài)并延長(zhǎng)有效期,感興趣的可以了解一下2025-09-09
詳解Spring事件發(fā)布與監(jiān)聽機(jī)制
Spring提供了ApplicationContext事件機(jī)制,可以發(fā)布和監(jiān)聽事件,這個(gè)特性非常有用。Spring內(nèi)置了一些事件和監(jiān)聽器,例如在Spring容器啟動(dòng)前,Spring容器啟動(dòng)后,應(yīng)用啟動(dòng)失敗后等事件發(fā)生后,監(jiān)聽在這些事件上的監(jiān)聽器會(huì)做出相應(yīng)的響應(yīng)處理2021-06-06
手工體驗(yàn)smtp和pop3協(xié)議 郵件實(shí)現(xiàn)詳解(二)
POP3/IMAP協(xié)議定義了郵件客戶端軟件和POP3郵件服務(wù)器的通信規(guī)則,這篇文章我們就來手工體驗(yàn)SMTP和POP3協(xié)議的奧秘,感興趣的小伙伴們可以參考一下2017-10-10
詳解openfeign集成spring?cloud?loadbalancer實(shí)現(xiàn)負(fù)載均衡流程
這篇文章主要介紹了openfeign集成spring?cloud?loadbalancer實(shí)現(xiàn)負(fù)載均衡流程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
基于SpringBoot+Redis實(shí)現(xiàn)一個(gè)簡(jiǎn)單的限流器
在Spring?Boot中使用Redis和過濾器實(shí)現(xiàn)請(qǐng)求限流,過濾器將在每個(gè)請(qǐng)求到達(dá)時(shí)檢查請(qǐng)求頻率,并根據(jù)設(shè)定的閾值進(jìn)行限制,這樣可以保護(hù)您的應(yīng)用程序免受惡意請(qǐng)求或高并發(fā)請(qǐng)求的影響,本文我們通過Spring?Boot?+Redis?實(shí)現(xiàn)一個(gè)輕量級(jí)的消息隊(duì)列,需要的朋友可以參考下2023-08-08
你知道在Java中Integer和int的這些區(qū)別嗎?
最近面試,突然被問道,說一下Integer和int的區(qū)別.額…可能平時(shí)就知道寫一些業(yè)務(wù)代碼,包括面試的一些Spring源碼等,對(duì)于這種特別基礎(chǔ)的反而忽略了,導(dǎo)致面試的時(shí)候突然被問到反而不知道怎么回答了.哎,還是乖乖再看看底層基礎(chǔ),順帶記錄一下把 ,需要的朋友可以參考下2021-06-06
eclipse實(shí)現(xiàn)可認(rèn)證的DH密鑰交換協(xié)議
這篇文章主要介紹了eclipse實(shí)現(xiàn)可認(rèn)證的DH密鑰交換協(xié)議,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06
關(guān)于Javaweb的轉(zhuǎn)發(fā)和重定向詳解
這篇文章主要介紹了關(guān)于Javaweb的轉(zhuǎn)發(fā)和重定向詳解,請(qǐng)求的轉(zhuǎn)發(fā),是指服務(wù)器收到請(qǐng)求后,從一個(gè)服務(wù)器端資源跳轉(zhuǎn)到同一個(gè)服務(wù)器端另外一個(gè)資源的操作,需要的朋友可以參考下2023-05-05

