900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > java 队列复制_复制一个文件夹里的文件到另一个目录下 (使用队列的方法实现)...

java 队列复制_复制一个文件夹里的文件到另一个目录下 (使用队列的方法实现)...

时间:2021-08-18 10:27:15

相关推荐

java 队列复制_复制一个文件夹里的文件到另一个目录下 (使用队列的方法实现)...

最近在由于准备实习,在学android,也会用到Java,所以想实现复制文件夹的功能,当然也参考了别人的代码。这里是我参考的网址:/etzmico/article/details/7786525/

我发这个文章的主要目的是为了永久性保存我的这个小小成功,用队列的方式又写了一个源文件夹里的所有文件到一个目标目录下的代码,这个目标目录下只有文件,没有文件夹。

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.ObjectInputStream.GetField;

import java.util.LinkedList;

import java.util.Queue;

public class CopyFile2 {

static Queue queue = new LinkedList();

static String copy_From ="D:\\amu1";//源文件

static String copy_TO="E:\\amu2"; //目标文件

/**

* @param args

* @throws IOException

*/

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

// TODO Auto-generated method stub

File [] get_From=(new File(copy_From)).listFiles();//获取源文件中的文件或目录

PanDuan(get_From);//判断是文件还是文件夹,如果是文件直接拷贝,

//如果是文件夹,加到队列当中

while(!queue.isEmpty()){

File getFile=queue.remove();//获取并移除此队列的头,如果此队列为空,则返回 null。

File [] get=(new File(getFile.getAbsolutePath())).listFiles();

//File[] files= new File[]{get};

//files[0]=getFile;

PanDuan(get);

}

}

/*

* 判断是文件还是是文件夹的函数,如果是文件,直接拷贝,如果是文件夹加入到队列中

*/

private static void PanDuan(File[] get_from) throws IOException {

// TODO Auto-generated method stub

for(int i=0;i

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

//调用复制文件的函数

String toFile = copy_TO +"/"+ get_from[i].getName();

copy_File(get_from[i],new File (toFile));

}

else if(get_from[i].isDirectory()){

//Queue queue = new LinkedList();//,如果是文件夹,就加入到队列中

queue.add(get_from[i]);

}

}

}

/

复制文件的函数

*/

private static void copy_File(File from_File, File to_File) throws IOException

{

FileInputStream infile=new FileInputStream(from_File);//新建输入流

BufferedInputStream inbuf=new BufferedInputStream(infile);//对输入流进行缓冲

FileOutputStream outfile=new FileOutputStream(to_File); //新建输出流

BufferedOutputStream outbuf=new BufferedOutputStream(outfile);//对输出流进行缓冲

//缓冲数组

byte [] bt=new byte[2048];

int len;

while ((len=inbuf.read(bt))!=-1) {

outbuf.write(bt, 0, len);

}

outbuf.flush(); //刷新缓冲

infile.close();

inbuf.close();

outfile.close();

outbuf.close();

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。