您的位置:

java复制文件夹,java复制文件夹到另一个目录下

本文目录一览:

java复制文件夹以及其中的文件

这是 我修改后的,能使用。 package configuration;import java.io.*;

/**

* @author Administrator

*

* Class Function:

*/

public class copyDirectory {

public void startCopy(String topath,String frompath) throws IOException {

File copy=new File(topath); //拷贝到何处 路径

File bycopy=new File(frompath); //从何处拷贝 路径

//创建备份目录

copy.mkdirs();

//开始拷贝

File[] file=bycopy.listFiles();

try{

if(file.length!=0){

for(int i=0;ifile.length;i++){

if(file[i].isFile()){

FileInputStream input=new FileInputStream(file[i]);

FileOutputStream output=new FileOutputStream(copy+"\\"+file[i].getName());

byte[] b=new byte[1024*10];

int len=input.read(b);

System.out.println("=========================================是文件================================================================");

System.out.println("拷贝"+topath+"\\"+file[i].getName());

System.out.println("目标"+frompath+"\\"+file[i].getName());

while((len=input.read(b))!=-1){

output.write(b,0,len);

}

output.flush();

output.close();

input.close();

}

if(file[i].isDirectory()){

copyDirectiory(copy+"\\"+file[i].getName(),bycopy+"\\"+file[i].getName());

System.out.println("=========================================是目录================================================================");

System.out.println("拷贝"+topath+"\\"+file[i].getName());

System.out.println("目标"+frompath+"\\"+file[i].getName());

}

}

}

}catch(Exception e){

}finally{

file=null;

}

}

public void copyDirectiory(String topath,String frompath) throws IOException{

File copy=new File(topath);

File bycopy=new File(frompath);

//创建拷贝目录

copy.mkdirs();

//开始拷贝

File[] file=bycopy.listFiles();

try{

if(file.length!=0){

for(int i=0;ifile.length;i++){

if(file[i].isFile()){

FileInputStream input=new FileInputStream(file[i]);

FileOutputStream output=new FileOutputStream(copy+"\\"+file[i].getName());

byte[] b=new byte[1024*5];

int len;

while((len=input.read(b))!=-1){

output.write(b,0,len);

}

output.flush();

output.close();

input.close();

}

if(file[i].isDirectory()){

copyDirectiory(copy+"\\"+file[i].getName(),bycopy+"\\"+file[i].getName());

}

}

}

}catch(Exception e){

}finally{

file=null;

}

}}

Java代码拷贝文件夹 注:复制文件夹

Java代码复制文件夹时,则需要利用Flie类在目标文件夹中创建相应的目录,并且使用递归方法,代码如下:

import java.io.*;  

/** 

 * 复制文件夹或文件夹 

 */  

public class CopyDirectory {  

    // 源文件夹   

    static String url1 = "F:/photos";  

    // 目标文件夹   

    static String url2 = "D:/tempPhotos";  

    public static void main(String args[]) throws IOException {  

        // 创建目标文件夹   

        (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);  

            }  

        }  

    }  

}

java如何复制拷贝一个文件到另一个文件夹?如:a文件夹中的.data文件拷贝到b文件夹。

你可以个java inputStrem流和outputStream流来实现这个功能。

import java.io.*;

public class FileStreamDemo {

public static void main(String[] args) {

try {

// 来源文件

FileInputStream in = new FileInputStream("D:/b.txt");

// 目的文件

FileOutputStream out = new FileOutputStream("C:/a.txt");

byte[] bytearray = new byte[1024];

do {

in.read(bytearray, 0, 1024);

out.write(bytearray);

} while (in.available() 0);

in.close();

out.close();

} catch (ArrayIndexOutOfBoundsException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}