檔案位元組流--拷貝資料夾
阿新 • • 發佈:2019-02-10
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileCopy {
public static void main(String[]args) throws IOException {
File f=new File("c:\\Sogou");//首先如果該路徑有對應的目錄或檔案,則直接繫結,
//f.createNewFile();//如果最後一個沒有可以建立檔案(目錄不可以)
//f.mkdirs();//如果該路徑不存在,可以連環建立目錄
//FileOutputStream fis=new FileOutputStream(f);//FileInPutStream對應的只能為檔案,若為目錄會報錯
//OutputStream不會報錯,如26行
copy(f,new File("c:\\czj"));
}
public static void copy(File srt,File dst) throws IOException {
dst.mkdir();//一開始沒有生成目錄,如果不寫,FileOutputStream初始化出錯
if(srt!=null) {
File[] list=srt.listFiles();
if (list!=null) {
for(File f:list) {
if(f.isFile()) {
FileInputStream fis=new FileInputStream(f);
FileOutputStream fos=new FileOutputStream(new File(dst.getAbsolutePath()+"\\"+f.getName()),true);
byte[] buff=new byte[1024*1024];//快取,提高速度
int length=0;
while((length=fis.read(buff))!=-1) {
fos.write(buff,0,length);
}
}
else {
copy(f,new File(dst.getAbsolutePath()+"\\"+f.getName()));//這裡迭代重點
}
}
}
}
}
}