黑马程序员技术交流社区
标题:
文件夹下文件的复制
[打印本页]
作者:
skill20
时间:
2014-5-8 20:17
标题:
文件夹下文件的复制
/*
需求:复制文件夹下的文件。
分析:用读取流关联文件,建立文件夹对象。判断是否是目录。
*/
import java.io.*;
import java.util.*;
class CopyTest
{
public static void main(String[] args) throws IOException
{
copy();
}
public static void copy()throws IOException
{
File dir1 = new File("d:\\ab");
File dir2 = new File("e:\\at");
if(!dir2.exists())
dir2.mkdir();
List<File> list = new ArrayList<File>();
get(dir1,list);
for(File files : list)
{
BufferedReader bfr
= new BufferedReader(new FileReader(files));//读取文件。
BufferedWriter bfw
= new BufferedWriter(new FileWriter( dir2 + "\\"+ files.getName()));
String str = null;
while((str = bfr.readLine()) != null)//写文件。
{
bfw.write(str);
bfw.newLine();
bfw.flush();
}
bfw.close();
bfr.close();
}
}
public static void get(File dir, List<File> list)//把文件全部存到集合里。
{
File[] files = dir.listFiles();
for( int x = 0; x < files.length; x++)
{
if(files[x].isDirectory())
get(files[x],list);
else
list.add(files[x]);
}
}
}
复制代码
目录文件夹下文件的复制这个代码可行不?
作者:
曹冬明
时间:
2014-5-8 20:31
你这样复制,文件夹下的子目录不就没了,目标文件夹里全部都是文件,没有层次之分,不如不复制了
作者:
skill20
时间:
2014-5-8 20:40
曹冬明 发表于 2014-5-8 20:31
你这样复制,文件夹下的子目录不就没了,目标文件夹里全部都是文件,没有层次之分,不如不复制了 ...
恩,这是个问题,那要咋搞?
作者:
多一点
时间:
2014-5-8 22:43
我这有个垃圾的列子 你看下:package itheima.com.filer;
import java.io.*;
public class CopyFile {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
String path="D:\\apache-tomcat-7.0.33";
File file = new File(path);
searchFile(file);
}
//递归并复制文件
private static void searchFile(File file) throws IOException {
File[] files = file.listFiles();
for (File sFile : files) {
if (sFile.isDirectory()) {
//递归
searchFile(sFile);
} else {
//F盘下文件目录
String newName = "F" + sFile.getPath().substring(1);
String dir=newName.substring(0, newName.lastIndexOf("\\"));
String FileName =sFile.getName();
File pathFile =new File(dir);
pathFile.mkdirs();
//F盘下目录和文件名
File newFile =new File (pathFile,FileName);
//复制文件
copyFileAll(sFile, newFile);
}
}
}
//复制文件
private static void copyFileAll(File oldFile, File newFile)
throws IOException {
BufferedReader br= new BufferedReader(new InputStreamReader(new FileInputStream(oldFile)));
BufferedWriter bw= new BufferedWriter(new OutputStreamWriter(new FileOutputStream(newFile)));
String line=null;
while ((line = br.readLine()) != null) {
bw.write(line);
bw.newLine();
bw.flush();
}
br.close();
bw.close();
}
}
这个代码不是很好 希望能帮到你
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2