通過輸入輸出流解決此問題,具體的可以查看JDK的API,實(shí)在不會的話,百度一下應(yīng)該都有一堆這方面的代碼。
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),建德企業(yè)網(wǎng)站建設(shè),建德品牌網(wǎng)站建設(shè),網(wǎng)站定制,建德網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,建德網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
一個(gè)簡單的方式就是調(diào)用cmd命令,使用windows自帶的功能來替你完成這個(gè)功能
我給你寫個(gè)例子
import java.io.*;
public class test{
public static void main(String[] args){
BufferedReader in = null;
try{
// 這里你就當(dāng)作操作對dos一樣好了 不過cmd /c 一定不要?jiǎng)?/p>
Process pro = Runtime.getRuntime().exec("cmd /c copy d:\\ReadMe.txt e:\\");
in = new BufferedReader(new InputStreamReader(pro.getInputStream()));
String str;
while((str = in.readLine()) != null){
System.out.println(str);
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(in != null){
try{
in.close();
}catch(IOException i){
i.printStackTrace();
}
}
}
}
}
工具/原料
一臺配置了java環(huán)境的電腦
一款適合自己的開發(fā)集成環(huán)境,這里用的是eclipse Kepler
文件拷貝DEMO
1.首先,理清思路,然后我們再動(dòng)手操作。
拷貝,有源文件,和目的文件。
如果原文件不存在,提示,報(bào)錯(cuò)。
如果目的文件不存在,創(chuàng)建空文件并被覆蓋。
如果目的地址,也即目的路徑不存在,創(chuàng)建路徑。
拷貝,輸入流,輸出流,關(guān)閉流。
拷貝前輸出文件大小,計(jì)算拷貝大小,比較并核實(shí)。輸出。
2.首先呢,先判斷傳參是否完整。
如果不夠兩個(gè)參數(shù),或者多于兩個(gè)參數(shù),提示錯(cuò)誤。
如果目標(biāo)文件不存在,創(chuàng)建 空文件繼續(xù)復(fù)制。
3.在開始前,輸出被拷貝的源文件的大小。
4.獲得文件名稱,即短名。也即路徑下的文件全名(包括文件擴(kuò)展名)。
5.拷貝的關(guān)鍵,這里用的簡單的緩沖流。從源文件到目的文件。
number of bytes copied 即是對拷貝長度的累計(jì),直到拷貝完成,輸出。
6.將步驟二中的判斷并拷貝文件的代碼寫在一個(gè)main函數(shù)中,
執(zhí)行拷貝,拷貝完成。結(jié)果拷貝大小和源文件大小一致,成功。
7.在執(zhí)行前,記得輸入?yún)?shù)。
如果是使用命令提示符,執(zhí)行 javac CopyFile.java 之后,
執(zhí)行 java CopyFile [源文件長名] [目的文件長名]
如果是使用的eclipse,在運(yùn)行前設(shè)置一下運(yùn)行參數(shù),完成后點(diǎn)擊運(yùn)行,如下圖。
P.S. 這里面的所謂“長名”是指完整絕對路徑+文件名+文件類型擴(kuò)展名
這里的源文件及目的文件的名稱分別為:
E:/IP_Data.rar 和 D:/testFiles/IP_Data.rar
END
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Copy {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
if(args.length!=2){
System.out.print("沒有輸入正確數(shù)目的參數(shù),程序退出!");
System.exit(0);
}
File fileS = new File("./"+args[0]);
File fileD = new File("./"+args[1]);
if(fileD.exists())System.out.println("目標(biāo)文件 "+args[1]+" 已存在!");
byte[] temp = new byte[50];
int totalSize = 0;
try {
FileInputStream fr = new FileInputStream(fileS);
FileOutputStream fo = new FileOutputStream(fileD);
int length = 0;
while((length = fr.read(temp, 0, temp.length)) != -1){
totalSize += length;
fo.write(temp, 0, length);
}
System.out.println("文件 "+args[0]+" 有 "+totalSize+" 個(gè)字節(jié)");
System.out.println("復(fù)制完成!");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("源文件 "+args[0]+" 不存在!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}