用Java实现输出一个目录上所有文件名到一个文件中

用Java实现输出一个目录下所有文件名到一个文件中?
1、输出出某个目录下所有的目录与文件,在目录下查找名称为1.txt的文件,如果存在,进行排序处理,并生成新文件

------解决方案--------------------


import com.ccit.xyy.oneday.FileOperating;
import com.ccit.xyy.oneday.Student;

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;

/**
 *@作者:xyy
 *@创建时间:2010年2月1日11点45分
 *@描述:输出出某个目录下所有的目录与文件,在目录下查找名称为1.txt的文件,
 * 如果存在,进行排序处理,并生成新文件。
 */
public class FileOperation {

public FileOperation() {

}

// 递归查找,获取该路径下所有目录(递归)
public void search(String fpath) {
File f = new File(fpath); // 初始化一个File的对象
File[] farray = f.listFiles();// 获取所有

if (fpath == null) {
System.out.println("没有输入路径");
} else {
for (int i = 0; farray != null && i < farray.length; i++) {
File f1 = farray[i];
// 如果是文件则打印出来,并显示所在路径
if (f1.isFile() && (f1.getName()).contains("i")) {
System.out.println(f1.getName() + " :::" + f1.getPath());
} else {
// 如果是目录则打印出来,并显示所在路径
if (f1.getName().contains("i"))
System.out.println(f1.getName() + " :" + f1.getPath());
fpath = f1.getPath();
search(fpath); // 递归
}
}
}
}

// 查找某路径下的所有目录与文件,并单独查找名称为1.txt的文件
public Student[] listFiles(String path) {
// String path = "D:\\test\\";
Student[] stu;
File file = new File(path);
String filename = path + "1.txt";

// 输出该目录下的所有目录与文件
String[] fns = file.list();
for (int i = 0; i < fns.length; i++) {
System.out.println(fns[i]);
}

// 查找名为1.txt的文件
String[] sfns = file.list(new FilenameFilter() {
public boolean accept(File dir, String name) {
if (name.startsWith("1.txt")) {
// System.out.println("名为1.txt的文件已找到!");
return true;
} else {
return false;
}
}
});

// 在控制台输出名为1.txt的文件
for (int j = 0; j < sfns.length; j++) {
System.out.println(sfns[j]);
}

stu = getSort(filename); // 调用getSort()方法,进行排序

return stu; // 返回一个Student的对象
}

// 进行排序
public Student[] getSort(String path) {
Student[] stu1 = null;
Student[] stu2 = null;
FileOperating fileOperating = new FileOperating();
try {
stu1 = fileOperating.openFile(path);
stu2 = fileOperating.getSort(stu1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return stu2;
}

// 主函数
public static void main(String[] args) {
String path = "D:\\test\\"; // 所要查找的目录
String newfilename = "D:\\test\\2.txt"; // 新文件的路径
Student[] s = null; // 初始化一个Student的数组
FileOperating fileOperating = new FileOperating(); // 初始化一个FileOperating的对象
FileOperation fileOperation = new FileOperation(); // 初始化一个FileOperation的对象

s = fileOperation.listFiles(path); // 调用listFiles并把返回的对象负值给s

// 调用类FileOperating的putFile()方法
try {
fileOperating.putFile(s, newfilename);
} catch (IOException e) {
// TODO Auto-generated catchblock
e.printStackTrace();
}

fileOperation.search(path); // 调用serch()方法递归获取path下的所有目录

}

}





/**
 * @author xyy
 * @time 2010年02月01日13点05分
 * @类名 Student
 * @描述 一个Student的封装类
 */


public class Student {

private String name;
private int yuwen;
private int shuxue;


public Student (){

}
public int getTotalScore(){