導航:首頁 > 文件處理 > java復制文件夾

java復制文件夾

發布時間:2022-02-14 13:38:19

『壹』 java 如何拷貝整個目錄,類似x

有兩種方法可以使用:

1、我們可以使用java的File類,使用遞歸演算法遍歷文件夾及其所有層的子文件夾,這種寫法非常繁瑣且效率不高,不推薦使用。

2、直接使用Windows的x命令
示例代碼

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main( String[] args ) throws IOException
{
/*在dos窗口:x C:\源文件 D:\源文件\/S/E*/
/*字元所需的格式:x C:\\源文件 D:\\源文件\\/S/E*/
System.out.println( "請輸入源文件的地址欄路徑:" );
BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );
String input = br.readLine();
/*將地址中的單斜杠變為雙斜杠*/
String from = input.replaceAll( "\\\\", "\\\\\\\\" );
/*獲取文件名*/
String name_file = from.substring( from.lastIndexOf( "\\" ) + 1, from.length() );
/*把目標拷貝到D盤根目錄*/
String to = "D:\\" + name_file + "\\/S/E";
/*拼裝命令*/
String cmd = "cmd.exe /C x " + from + " " + to;
/*執行命令*/
java.lang.Runtime.getRuntime().exec( cmd );
System.out.println( "文件拷貝完畢。" );
System.out.println( "文件已經拷貝到:D:\\" + name_file );
}
}

『貳』 Java File的操作,復制文件夾的方法!

你寫的兩個程序都不太嚴謹,我給你寫一個復制文件和復制文件夾的標準例子吧。
//復制文件
package com.cdd.file;
import java.io.*;
public class FileText {
public static void main(String[] args) {
String sfpath = "E://word.txt"; // 指定文件地址
String dfpath = "F://word.txt";
File sFile = new File(sfpath); // 創建文件對象
File dFile = new File(dfpath);
try {
dFile.createNewFile(); // 新建文件
FileInputStream fis = new FileInputStream(sFile);
FileOutputStream fout = new FileOutputStream(dFile);
byte[] date = new byte[512]; // 創建位元組數組
int rs = -1;
while ((rs = fis.read(date)) > 0) { // 循環讀取文件
fout.write(date, 0, rs); // 向文件寫數據
}
fout.close();
fis.close(); // 關閉流
System.out.println("文件復製成功");
} catch (Exception e) {
e.printStackTrace();
}
}
}

//復制文件夾
package com.cdd.util;
import java.io.*;
public class FileUtil {
private static void (File[] files, File d) {
if (!d.exists()) //如果指定目錄不存在
d.mkdir(); //創建目錄
for (int i = 0; i < files.length; i++) { //循環遍歷要復制的文件夾
if (files[i].isFile()) { //如果文件夾中是文件
try {
FileInputStream fis = new FileInputStream(files[i]); //創建FileInputStream對象
FileOutputStream out = new FileOutputStream(new File(d
.getPath()
+ File.separator + files[i].getName())); //復制後文件的保存路徑
int count = fis.available();
byte[] data = new byte[count];
if ((fis.read(data)) != -1) { //讀取文件
out.write(data); //將讀取的信息寫入文件中
}
out.close(); //關閉流
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (files[i].isDirectory()) { //如果文件夾中是一個路徑
File des = new File(d.getPath() + File.separator
+ files[i].getName()); //在復制後路徑中創建子文件夾
des.mkdir();
(files[i].listFiles(), des); //再次調用本方法
}
}
System.out.println("文件夾復製成功");
}
public static void main(String[] args) {
File sourFile = null, desFile = null;
String sourFolder = "E://word"; //指定要進行復制的文件夾
String desFolder = "E://"; //指定復制後的文件夾地址
sourFile = new File(sourFolder);
if (!sourFile.isDirectory() || !sourFile.exists()) { //如果原文件夾不存在
System.out.println("原文件夾不存在");
}
desFile = new File(desFolder);
desFile.mkdir();
(sourFile.listFiles(), desFile); //調用文件夾復制方法
}
}

『叄』 怎樣用Java復制一個文件到指定目錄

import java.io.*;

public class CopyFile {
public static void main(String[] args) {
try{
FileInputStream input=new FileInputStream("f:\\downloads\\kon.jpg");//可替換為任何路徑何和文件名
FileOutputStream output=new FileOutputStream("f:\\kon.jpg");//可替換為任何路徑何和文件名

int in=input.read();
while(in!=-1){
output.write(in);
in=input.read();
}
}catch (IOException e){
System.out.println(e.toString());
}
}
}

『肆』 java 文件夾 。下面所有的文件及其文件夾 。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class FolderCopy {
/**
* @param args
*/
/*文件
* param src,des
* return ture 成功。false 失敗
*/
public static boolean fileCopy(String src,String des){
File srcFile=new File(src);
File desFile=new File(des);
byte[]b=new byte[1024];
String string="";
try {
FileInputStream fis=new FileInputStream(srcFile);
FileOutputStream fos=new FileOutputStream(desFile,false);
while(true){
int i=fis.read(b);
if(i==-1)break;
fos.write(b,0,i);
}
fos.close();
fis.close();
return true;
} catch (Exception e){
e.printStackTrace();
}
return false;
}

/*
* 文件夾
* param src,des
* return ture 成功。false 失敗
*
*/

public static boolean folderCopy(String src,String des){
File srcFile=new File(src);
File desFile=new File(des);
File []files=srcFile.listFiles();
boolean flag = false;
if(!desFile.exists())desFile.mkdir();
for(int i=0;i<files.length;i++){
String path=files[i].getAbsolutePath();
if(files[i].isDirectory()){
File newFile=new File("path.replace(src,des)");
if(!newFile.exists())newFile.mkdir();//不存在新建文件夾
folderCopy(path,path.replace(src,des));
}
else
flag=fileCopy(path,path.replace(src,des));//文件復制函數
}
return flag;
}
public static void main(String[] args) {
FolderCopy.folderCopy("d:\\1","C:\\1" );

}

}
希望能夠幫助你。

『伍』 java如何復制拷貝一個文件到另一個文件夾如:a文件夾中的.data文件拷貝到b文件夾。

你可以個java inputStrem流和outputStream流來實現這個功能。
import java.io.*;
public class FileStreamDemo {
public static void main(String[] args) {
try {
// 來源文件
FileInputStream in = new FileInputStream("D:/b.txt");
// 目的文件
FileOutputStream out = new FileOutputStream("C:/a.txt");
byte[] bytearray = new byte[1024];
do {
in.read(bytearray, 0, 1024);
out.write(bytearray);
} while (in.available() > 0);
in.close();
out.close();
} catch ( e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}

『陸』 java中如何實現快速復制文件

public class IOTest2 {

/**
* @author jiang
* @param args
* BufferedReader
* BufferedWriter
* @throws IOException
*/
public static void main(String[] args) throws IOException {
//一次能讀取一行 readLine()方法
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("1.txt")));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("2.txt")));
String str=null;
while((str=br.readLine())!=null){
//文件末尾讀取為null就結束
bw.write(str);
}
bw.flush();//寫入後刷新
bw.close();//關閉文件
br.close();//關閉文件
}
}

『柒』 Java怎麼實現文件拷貝

工具/原料

一台配置了java環境的電腦

一款適合自己的開發集成環境,這里用的是eclipse Kepler


文件拷貝DEMO

1.首先,理清思路,然後我們再動手操作。

拷貝,有源文件,和目的文件。

如果原文件不存在,提示,報錯。

如果目的文件不存在,創建空文件並被覆蓋。

如果目的地址,也即目的路徑不存在,創建路徑。

拷貝,輸入流,輸出流,關閉流。

拷貝前輸出文件大小,計算拷貝大小,比較並核實。輸出。

『捌』 用java復制多級文件夾下的文件,只要文件不要文件夾。

遞歸

File file = new File("d:/A/");
private List<String> ergodic(File file,List<String> resultFileName){
File[] files = file.listFiles();
if(files==null)return resultFileName;// 判斷目錄下是不是空的
for (File f : files) {
if(f.isDirectory()){// 判斷是否文件夾

ergodic(f,resultFileName);// 調用自身,查找子目錄
}else
resultFileName.add(f.getPath());
}
return resultFileName;
}

要獲取文件 的話 , 路徑 全在這個list中
你要是直接復制到 別的目錄 改一改就可以了
把是文件的地方 用流寫出去可以了

『玖』 java如何拷貝文件到另一個目錄下

下面列舉出4種方式:

1、使用FileStreams復制

這是最經典的方式將一個文件的內容復制到另一個文件中。 使用FileInputStream讀取文件A的位元組,使用FileOutputStream寫入到文件B。正如你所看到的我們執行幾個讀和寫操作try的數據,所以這應該是一個低效率的,下一個方法我們將看到新的方式。 這是第一個方法的代碼:

『拾』 JAVA怎麼將一個圖片復制到文件夾中去

JDK寶典里有這樣的一段代碼,你調用File方法就可以了:

/**
* 復制單個文件, 如果目標文件存在,則不覆蓋。
* @param srcFileName 待復制的文件名
* @param destFileName 目標文件名
* @return 如果復製成功,則返回true,否則返回false
*/
public static boolean File(String srcFileName, String destFileName){
return CopyFileUtil.File(srcFileName, destFileName, false);
}

/**
* 復制單個文件
* @param srcFileName 待復制的文件名
* @param destFileName 目標文件名
* @param overlay 如果目標文件存在,是否覆蓋
* @return 如果復製成功,則返回true,否則返回false
*/
public static boolean File(String srcFileName,
String destFileName, boolean overlay) {
//判斷原文件是否存在
File srcFile = new File(srcFileName);
if (!srcFile.exists()){
System.out.println("復制文件失敗:原文件" + srcFileName + "不存在!");
return false;
} else if (!srcFile.isFile()){
System.out.println("復制文件失敗:" + srcFileName + "不是一個文件!");
return false;
}
//判斷目標文件是否存在
File destFile = new File(destFileName);
if (destFile.exists()){
//如果目標文件存在,而且復制時允許覆蓋。
if (overlay){
//刪除已存在的目標文件,無論目標文件是目錄還是單個文件
System.out.println("目標文件已存在,准備刪除它!");
if(!DeleteFileUtil.delete(destFileName)){
System.out.println("復制文件失敗:刪除目標文件" + destFileName + "失敗!");
return false;
}
} else {
System.out.println("復制文件失敗:目標文件" + destFileName + "已存在!");
return false;
}
} else {
if (!destFile.getParentFile().exists()){
//如果目標文件所在的目錄不存在,則創建目錄
System.out.println("目標文件所在的目錄不存在,准備創建它!");
if(!destFile.getParentFile().mkdirs()){
System.out.println("復制文件失敗:創建目標文件所在的目錄失敗!" );
return false;
}
}
}
//准備復制文件
int byteread = 0;//讀取的位數
InputStream in = null;
OutputStream out = null;
try {
//打開原文件
in = new FileInputStream(srcFile);
//打開連接到目標文件的輸出流
out = new FileOutputStream(destFile);
byte[] buffer = new byte[1024];
//一次讀取1024個位元組,當byteread為-1時表示文件已經讀完
while ((byteread = in.read(buffer)) != -1) {
//將讀取的位元組寫入輸出流
out.write(buffer, 0, byteread);
}
System.out.println("復制單個文件" + srcFileName + "至" + destFileName + "成功!");
return true;
} catch (Exception e) {
System.out.println("復制文件失敗:" + e.getMessage());
return false;
} finally {
//關閉輸入輸出流,注意先關閉輸出流,再關閉輸入流
if (out != null){
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (in != null){
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

閱讀全文

與java復制文件夾相關的資料

熱點內容
人保送車主惠app上怎麼年檢 瀏覽:602
android手機開機密碼 瀏覽:480
linux查看某個進程命令 瀏覽:523
閑置的騰訊雲伺服器 瀏覽:437
rar壓縮包mac 瀏覽:626
php混淆加密工具 瀏覽:581
java把數字拆分 瀏覽:464
如何下載svn伺服器舊版本 瀏覽:559
命令與征服4攻略 瀏覽:914
實數四則運演算法則概念 瀏覽:294
cs16優化命令 瀏覽:871
Minecraft雲伺服器免費 瀏覽:828
png壓縮最小 瀏覽:182
老韓綜app怎麼看不了了 瀏覽:229
只有一個程序員的體驗 瀏覽:323
用伺服器地址怎麼有網 瀏覽:552
路由器伺服器昵稱是什麼 瀏覽:715
程序員男友消失了 瀏覽:401
程序員搜索框自動提示 瀏覽:28
android44api20 瀏覽:677