一個簡單的方式就是調用cmd命令,使用windows自帶的功能來替你完成這個功能
成都創(chuàng)新互聯主營龍鳳網站建設的網絡公司,主營網站建設方案,app開發(fā)定制,龍鳳h5小程序開發(fā)搭建,龍鳳網站營銷推廣歡迎龍鳳等地區(qū)企業(yè)咨詢
我給你寫個例子
import java.io.*;
public class test{
public static void main(String[] args){
BufferedReader in = null;
try{
// 這里你就當作操作對dos一樣好了 不過cmd /c 一定不要動
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();
}
}
}
}
}
復制粘貼實際上是文件的流讀取和寫入可以通過如下方法實現:
讀寫是兩個不同的分支,通常都是分開單獨使用的。
可以通過BufferedReader 流的形式進行流緩存,之后通過readLine方法獲取到緩存的內容。
BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此時獲取到的bre就是整個文件的緩存流
while ((str = bre.readLine())!= null) // 判斷最后一行不存在,為空結束循環(huán)
{
System.out.println(str);//原樣輸出讀到的內容
};
備注: 流用完之后必須close掉,如上面的就應該是:bre.close(),否則bre流會一直存在,直到程序運行結束。
可以通過“FileOutputStream”創(chuàng)建文件實例,之后過“OutputStreamWriter”流的形式進行存儲,舉例:
OutputStreamWriter pw = null;//定義一個流
pw = new OutputStreamWriter(new FileOutputStream(“D:/test.txt”),"GBK");//確認流的輸出文件和編碼格式,此過程創(chuàng)建了“test.txt”實例
pw.write("我是要寫入到記事本文件的內容");//將要寫入文件的內容,可以多次write
pw.close();//關閉流
備注:文件流用完之后必須及時通過close方法關閉,否則會一直處于打開狀態(tài),直至程序停止,增加系統負擔。
Java代碼復制文件夾時,則需要利用Flie類在目標文件夾中創(chuàng)建相應的目錄,并且使用遞歸方法,代碼如下:
import?java.io.*;??
/**?
*?復制文件夾或文件夾?
*/??
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())?{??
//?復制文件???
copyFile(file[i],new?File(url2+file[i].getName()));??
}??
if?(file[i].isDirectory())?{??
//?復制目錄???
String?sourceDir=url1+File.separator+file[i].getName();??
String?targetDir=url2+File.separator+file[i].getName();??
copyDirectiory(sourceDir,?targetDir);??
}??
}??
}??
//?復制文件???
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);??
//?緩沖數組???
byte[]?b?=?new?byte[1024?*?5];??
int?len;??
while?((len?=inBuff.read(b))?!=?-1)?{??
outBuff.write(b,?0,?len);??
}??
//?刷新此緩沖的輸出流???
outBuff.flush();??
//關閉流???
inBuff.close();??
outBuff.close();??
output.close();??
input.close();??
}??
//?復制文件夾???
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())?{??
//?準備復制的源文件夾???
String?dir1=sourceDir?+?"/"?+?file[i].getName();??
//?準備復制的目標文件夾???
String?dir2=targetDir?+?"/"+?file[i].getName();??
copyDirectiory(dir1,?dir2);??
}??
}??
}??
}
通過輸入輸出流解決此問題,具體的可以查看JDK的API,實在不會的話,百度一下應該都有一堆這方面的代碼。