package zuoye2;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class copytxt {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
* 确定文件夹下有多少个docx文件,然后复制到指定的地址中
* 遍历文件夹,使用过滤器筛选出txt 文件,如果是就进行复制
源文件地址:C:\myfilemydata\lianxi
目的地址:C:\myfilemydata\lianxi1
*/
File file =new File("C:\\myfilemydata\\lianxi");
String s="C:\\myfilemydata\\lianxi1";
int count=0;
System.out.println(method1(file,s,count));
}
//计算docx文件的个数
public static int method1(File file,String s,int count) {
//遍历文件夹
File[] filefilter=file.listFiles(new filter());
for(File f:filefilter) {
if(f.isDirectory()) {
count=method1(f,s,count);
}else {
count=count+1;
System.out.println(f.getName());
copy(f,s);
}
}
return count;
}
public static void copy(File f,String s) {
FileReader fin=null;
FileWriter fos=null;
//使用字符流进行复制
try {
fin=new FileReader(f);
fos=new FileWriter(s+"\\"+f.getName());
char[] c=new char[1024];
int len=0;
while((len=fin.read(c))!=-1) {
fos.write(c,0,len);
fos.flush();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(fin!=null)
{
try {
fin.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(fos!=null) {
try {
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
package zuoye2;
import java.io.File;
import java.io.FileFilter;
public class filter implements FileFilter{
public boolean accept (File pathname) {
if(pathname.isDirectory()) {
return true;
}else if(pathname.getName().endsWith("docx")) {
return true;
}else {
return false;
}
}
}
注:由于我文件中txt文件基本没有 就直接选择复制了docx文件