下面是我學(xué)習(xí)過程中總結(jié)的幾個(gè)復(fù)制文件的方法,代碼如下:
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:申請(qǐng)域名、虛擬空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、豐滿網(wǎng)站維護(hù)、網(wǎng)站推廣。
/**
*?復(fù)制媒體文件,該例子是復(fù)制1.mp3文件,列出了四種方式.
*/
import?java.io.BufferedInputStream;
import?java.io.BufferedOutputStream;
import?java.io.FileInputStream;
import?java.io.FileNotFoundException;
import?java.io.FileOutputStream;
import?java.io.IOException;
public?class?BufferedStreamCopyFiles?{
public?static?void?瞎賣main(String[]?args)?throws?IOException?{
/**
?*?共有四個(gè)方法,但建議用demo1,demo2;因?yàn)閐emo3需要?jiǎng)?chuàng)建數(shù)組,?如果文件大,光創(chuàng)建數(shù)組就需要很多磨渣逗時(shí)間;demo4一定也不要用,
?*?效率非常慢.
?*/
demo1();
demo2();
demo3();
demo4();
}
public?static?void?demo1()?throws?FileNotFoundException,?IOException?{
FileInputStream?fis?=?new?FileInputStream("d:\\1.mp3");
FileOutputStream?fos?=?new?FileOutputStream("d:\\01.mp3");
int?len?=?0;
byte[]?buf?=?new?byte[1024];
while?梁閉((len?=?fis.read(buf))?!=?-1)?{
fos.write(buf,?0,?len);
}
fis.close();
fos.close();
}
public?static?void?demo2()?throws?IOException?{
FileInputStream?fis?=?new?FileInputStream("d:\\1.mp3");
BufferedInputStream?bufis?=?new?BufferedInputStream(fis);
FileOutputStream?fos?=?new?FileOutputStream("d:\\02.mp3");
BufferedOutputStream?bufos?=?new?BufferedOutputStream(fos);
int?len?=?0;
while?((len?=?bufis.read())?!=?-1)?{
bufos.write(len);
}
bufis.close();
bufos.close();
}
//?不建議這種方式
public?static?void?demo3()?throws?IOException?{
FileInputStream?fis?=?new?FileInputStream("d:\\1.mp3");
FileOutputStream?fos?=?new?FileOutputStream("d:\\03.mp3");
byte[]?buf?=?new?byte[fis.available()];
fis.read(buf);
fos.write(buf);
fos.close();
fis.close();
}
public?static?void?demo4()?throws?IOException?{
FileInputStream?fis?=?new?FileInputStream("d:\\1.mp3");
FileOutputStream?fos?=?new?FileOutputStream("d:\\04.mp3");
int?ch?=?0;
while?((ch?=?fis.read())?!=?-1)?{
fos.write(ch);
}
fos.close();
fis.close();
}
}
Java代碼復(fù)制文件夾時(shí),則需要利用Flie類在目標(biāo)文件夾中創(chuàng)建相應(yīng)的目錄,并且使用遞歸方法,代碼如下:
import?java.io.*;??
/**?
*?復(fù)制文件夾或文件夾?
*/??
public?class?CopyDirectory?{??
//?源文件夾???
static?String?url1?=?"F:/photos";??
//?目標(biāo)文件夾???
static?String?url2?=?"D:/tempPhotos";??
public?static?void?main(String?args[])?throws?IOException?{??
//?創(chuàng)建目標(biāo)文件夾???
(new?File(url2)).mkdirs();??
//?獲取源文件夾當(dāng)前下的文件或目錄???
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{??
//?新建文件輸入流并對(duì)它進(jìn)行緩沖???
FileInputStream?input?=?new?FileInputStream(sourceFile);??
BufferedInputStream?inBuff=new?BufferedInputStream(input);??
//?新建文件輸出流并對(duì)它進(jìn)行緩沖???
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?{??
//?新建目標(biāo)目錄???
(new?File(targetDir)).mkdirs();??
//?獲取源文件夾當(dāng)前下的文件或目錄???
File[]?file?=?(new?File(sourceDir)).listFiles();??
for?(int?i?=?0;?i??file.length;?i++)?{??
if?(file[i].isFile())?{??
//?源文件???
File?sourceFile=file[i];??
//?目標(biāo)文件???
File?targetFile=new?File(new?File(targetDir).getAbsolutePath()+File.separator+file[i].getName());??
copyFile(sourceFile,targetFile);??
}??
if?(file[i].isDirectory())?{??
孝洞寬???????????//?準(zhǔn)備復(fù)制的源文件夾???
String?dir1=sourceDir?+?"/"?+?file[i].getName();??
//?準(zhǔn)備復(fù)制的目標(biāo)文件夾???
String?dir2=targetDir?+?"/"+?file[i].getName();??
顫棚??????copyDirectiory(dir1,?dir2);??
}??
}??
}??
}
借助工悶裂穗具包c(diǎn)ommons-io.jar
import java.io.File;
import java.io.IOException;
import org.apache點(diǎn)抗 mons.io.FileUtils;
public class Admin {
public static void main(String[] args) {
File from = new File("d:/源舉a");
File to = new File("d:/螞卜b");
try {
FileUtils.copyDirectory(from, to);
} catch (IOException e) {
e.printStackTrace();
}
}
}
分享文章:java代碼復(fù)制文件夾 java簡(jiǎn)單文件復(fù)制代碼
文章路徑:http://jinyejixie.com/article24/ddpgdce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、動(dòng)態(tài)網(wǎng)站、服務(wù)器托管、App設(shè)計(jì)、網(wǎng)站維護(hù)、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)