import java.io.File;
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計、做網(wǎng)站、清原網(wǎng)絡(luò)推廣、成都小程序開發(fā)、清原網(wǎng)絡(luò)營銷、清原企業(yè)策劃、清原品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供清原建站搭建服務(wù),24小時服務(wù)熱線:13518219792,官方網(wǎng)址:jinyejixie.com
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyFile {
public boolean copy(String file1,String file2) {
File in=new File(file1);
File out=new File(file2);
if(!in.exists()){
System.out.println(in.getAbsolutePath()+"源文件路徑錯誤?。。?);
return false;
}
else {
System.out.println("源文件路徑"+in.getAbsolutePath());
System.out.println("目標路徑"+out.getAbsolutePath());
}
if(!out.exists())
out.mkdirs();
File[] file=in.listFiles();
FileInputStream fin=null;
FileOutputStream fout=null;
for(int i=0;ifile.length;i++){
if(file[i].isFile()){
try {
fin=new FileInputStream(file[i]);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("in.name="+file[i].getName());
try {
fout=new FileOutputStream(new File(file2+"/"+file[i].getName()));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(file2);
int c;
byte[] b=new byte[1024*5];
try {
while((c=fin.read(b))!=-1){
fout.write(b, 0, c);
System.out.println("復(fù)制文件中!");
}
------------------------------注意
fin.close();
fout.flush();
fout.close();
--------------------------------
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
-------------------------------注釋掉
// return true;
}
else copy(file1+"/"+file[i].getName(),file2+"/"+file[i].getName());
}
return false;
}
public static void main(String[] args) {
CopyFile copyFile = new CopyFile();
copyFile.copy("E:\\study\\opngl", "E:\\opengl");
}
}
工具/原料
一臺配置了java環(huán)境的電腦
一款適合自己的開發(fā)集成環(huán)境,這里用的是eclipse Kepler
文件拷貝DEMO
1.首先,理清思路,然后我們再動手操作。
拷貝,有源文件,和目的文件。
如果原文件不存在,提示,報錯。
如果目的文件不存在,創(chuàng)建空文件并被覆蓋。
如果目的地址,也即目的路徑不存在,創(chuàng)建路徑。
拷貝,輸入流,輸出流,關(guān)閉流。
拷貝前輸出文件大小,計算拷貝大小,比較并核實。輸出。
2.首先呢,先判斷傳參是否完整。
如果不夠兩個參數(shù),或者多于兩個參數(shù),提示錯誤。
如果目標文件不存在,創(chuàng)建 空文件繼續(xù)復(fù)制。
3.在開始前,輸出被拷貝的源文件的大小。
4.獲得文件名稱,即短名。也即路徑下的文件全名(包括文件擴展名)。
5.拷貝的關(guān)鍵,這里用的簡單的緩沖流。從源文件到目的文件。
number of bytes copied 即是對拷貝長度的累計,直到拷貝完成,輸出。
6.將步驟二中的判斷并拷貝文件的代碼寫在一個main函數(shù)中,
執(zhí)行拷貝,拷貝完成。結(jié)果拷貝大小和源文件大小一致,成功。
7.在執(zhí)行前,記得輸入?yún)?shù)。
如果是使用命令提示符,執(zhí)行 javac CopyFile.java 之后,
執(zhí)行 java CopyFile [源文件長名] [目的文件長名]
如果是使用的eclipse,在運行前設(shè)置一下運行參數(shù),完成后點擊運行,如下圖。
P.S. 這里面的所謂“長名”是指完整絕對路徑+文件名+文件類型擴展名
這里的源文件及目的文件的名稱分別為:
E:/IP_Data.rar 和 D:/testFiles/IP_Data.rar
END
Java代碼復(fù)制文件夾時,則需要利用Flie類在目標文件夾中創(chuàng)建相應(yīng)的目錄,并且使用遞歸方法,代碼如下:
import?java.io.*;??
/**?
*?復(fù)制文件夾或文件夾?
*/??
public?class?CopyDirectory?{??
//?源文件夾???
static?String?url1?=?"F:/photos";??
//?目標文件夾???
static?String?url2?=?"D:/tempPhotos";??
public?static?void?main(String?args[])?throws?IOException?{??
//?創(chuàng)建目標文件夾???
(new?File(url2)).mkdirs();??
//?獲取源文件夾當前下的文件或目錄???
File[]?file?=?(new?File(url1)).listFiles();??
for?(int?i?=?0;?i??file.length;?i++)?{??
if?(file[i].isFile())?{??
//?復(fù)制文件???
copyFile(file[i],new?File(url2+file[i].getName()));??
}??
if?(file[i].isDirectory())?{??
//?復(fù)制目錄???
String?sourceDir=url1+File.separator+file[i].getName();??
String?targetDir=url2+File.separator+file[i].getName();??
copyDirectiory(sourceDir,?targetDir);??
}??
}??
}??
//?復(fù)制文件???
public?static?void?copyFile(File?sourceFile,File?targetFile)???
throws?IOException{??
//?新建文件輸入流并對它進行緩沖???
FileInputStream?input?=?new?FileInputStream(sourceFile);??
BufferedInputStream?inBuff=new?BufferedInputStream(input);??
//?新建文件輸出流并對它進行緩沖???
FileOutputStream?output?=?new?FileOutputStream(targetFile);??
BufferedOutputStream?outBuff=new?BufferedOutputStream(output);??
//?緩沖數(shù)組???
byte[]?b?=?new?byte[1024?*?5];??
int?len;??
while?((len?=inBuff.read(b))?!=?-1)?{??
outBuff.write(b,?0,?len);??
}??
//?刷新此緩沖的輸出流???
outBuff.flush();??
//關(guān)閉流???
inBuff.close();??
outBuff.close();??
output.close();??
input.close();??
}??
//?復(fù)制文件夾???
public?static?void?copyDirectiory(String?sourceDir,?String?targetDir)??
throws?IOException?{??
//?新建目標目錄???
(new?File(targetDir)).mkdirs();??
//?獲取源文件夾當前下的文件或目錄???
File[]?file?=?(new?File(sourceDir)).listFiles();??
for?(int?i?=?0;?i??file.length;?i++)?{??
if?(file[i].isFile())?{??
//?源文件???
File?sourceFile=file[i];??
//?目標文件???
File?targetFile=new?File(new?File(targetDir).getAbsolutePath()+File.separator+file[i].getName());??
copyFile(sourceFile,targetFile);??
}??
if?(file[i].isDirectory())?{??
//?準備復(fù)制的源文件夾???
String?dir1=sourceDir?+?"/"?+?file[i].getName();??
//?準備復(fù)制的目標文件夾???
String?dir2=targetDir?+?"/"+?file[i].getName();??
copyDirectiory(dir1,?dir2);??
}??
}??
}??
}
網(wǎng)站欄目:java文件夾復(fù)制代碼 java 文件夾復(fù)制
當前網(wǎng)址:http://jinyejixie.com/article12/dosdcgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、建站公司、虛擬主機、網(wǎng)站制作、移動網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)