java 队列复制_复制一个文件夹里的文件到另一个目录下 (使用队列的方法实现)...
最近在由于準(zhǔn)備實(shí)習(xí),在學(xué)android,也會(huì)用到Java,所以想實(shí)現(xiàn)復(fù)制文件夾的功能,當(dāng)然也參考了別人的代碼。這里是我參考的網(wǎng)址:http://blog.csdn.net/etzmico/article/details/7786525/
我發(fā)這個(gè)文章的主要目的是為了永久性保存我的這個(gè)小小成功,用隊(duì)列的方式又寫(xiě)了一個(gè)源文件夾里的所有文件到一個(gè)目標(biāo)目錄下的代碼,這個(gè)目標(biāo)目錄下只有文件,沒(méi)有文件夾。
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"; //目標(biāo)文件
/**
* @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);//判斷是文件還是文件夾,如果是文件直接拷貝,
//如果是文件夾,加到隊(duì)列當(dāng)中
while(!queue.isEmpty()){
File getFile=queue.remove();//獲取并移除此隊(duì)列的頭,如果此隊(duì)列為空,則返回 null。
File [] get=(new File(getFile.getAbsolutePath())).listFiles();
//File[] files= new File[]{get};
//files[0]=getFile;
PanDuan(get);
}
}
/*
* 判斷是文件還是是文件夾的函數(shù),如果是文件,直接拷貝,如果是文件夾加入到隊(duì)列中
*/
private static void PanDuan(File[] get_from) throws IOException {
// TODO Auto-generated method stub
for(int i=0;i
if(get_from[i].isFile()){
//調(diào)用復(fù)制文件的函數(shù)
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();//,如果是文件夾,就加入到隊(duì)列中
queue.add(get_from[i]);
}
}
}
/
復(fù)制文件的函數(shù)
*/
private static void copy_File(File from_File, File to_File) throws IOException
{
FileInputStream infile=new FileInputStream(from_File);//新建輸入流
BufferedInputStream inbuf=new BufferedInputStream(infile);//對(duì)輸入流進(jìn)行緩沖
FileOutputStream outfile=new FileOutputStream(to_File); //新建輸出流
BufferedOutputStream outbuf=new BufferedOutputStream(outfile);//對(duì)輸出流進(jìn)行緩沖
//緩沖數(shù)組
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();
}
}
總結(jié)
以上是生活随笔為你收集整理的java 队列复制_复制一个文件夹里的文件到另一个目录下 (使用队列的方法实现)...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java当中显示紫色_在java中将深色
- 下一篇: C#从构造函数中调用其他构造函数