package test;
import java.io.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.zip.InflaterInputStream;
import javax.annotation.processing.FilerException;
import javax.management.RuntimeErrorException;
import privateclass.Filterby_Name;
import privateclass.Filterby_hidden;
import privateclass.Filterby_java;
import privateclass.MyBufferedReader;
public class Main {
private static final String space_operator = " ";
private static final double pi = Math.PI;
private static final String LINE_SEPARATOR = System.getProperty("line.separator");
public static void main(String[] args) throws Exception {
/*
*找出文件夹中是java后缀的文件,并将文件存入到Myjava里面
*/
List<File> list = new ArrayList<File>();
//注意这个需要自己创建一个过滤器
Filterby_Name filterby_Name = new Filterby_Name(".txt");
FilenameFilter filter = new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
return name.endsWith(".java");
}
};
File file = new File("D:\\java总结");
File endFile = new File("Mytxt.txt");
dfsall(file, filterby_Name, list);
writetoMyjava(list,endFile);
}
/**
* 深层遍历一个文件夹
* 将文件夹中java文件写进list里面
* @param list
* @param endFile
* @throws IOException
*/
public static void writetoMyjava(List<File> list,File endFile) throws IOException {
BufferedWriter bfw = new BufferedWriter(new FileWriter(endFile));
for(File file : list)
{
bfw.write(file.getAbsolutePath());
bfw.newLine();
bfw.flush();
}
bfw.close();
}
/**
* 将list里面的java文件直接传送给Filewriter
* 读进自己想要存进的文件中去
* @param dir
* @param filter
* @param list
*/
public static void dfsall(File dir,FilenameFilter filter,List<File> list) {
for(File file : dir.listFiles())
{
if(file.isDirectory())
{
dfsall(file, filter, list);
}
else
{
if(filter.accept(file, file.getName()))
{
list.add(file);
}
}
}
}
}
过滤器
package privateclass;
import java.io.File;
import java.io.FilenameFilter;
public class Filterby_Name implements FilenameFilter {
private String suffix;
public Filterby_Name(String suffix) {
super();
this.suffix = suffix;
}
@Override
public boolean accept(File dir, String name) {
return name.endsWith(suffix);
}
}