import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
/**
* 需求:把i盘目录下的所有.java结尾的文件路径存储到一个文件中,方便查找
* @author xiedong
*
*/
public class ShowPath {
public static void main(String[] args) throws IOException {
//封装数据
File file1 = new File("I://");
//创建集合,保存数据
ArrayList<File> al = new ArrayList<File>();
getJavaFile(file1, al);
//封装目的地
File file2 = new File("i://codepath.txt");
getJavaFilePath(al, file2);
}
/**
* 写入数据
* @param al
* @param file2
* @throws IOException
*/
private static void getJavaFilePath(ArrayList<File> al, File file2) throws IOException {
// TODO Auto-generated method stub
BufferedWriter bw = new BufferedWriter(new FileWriter(file2));
for(File fileItem : al)
{
bw.write(fileItem.getAbsolutePath());
bw.newLine();
bw.flush();
}
bw.close();
}
/**
* 获取java文件的方法
* @param file
* @param al
* @throws IOException
*/
private static void getJavaFile(File file, ArrayList<File> al) throws IOException {
File[] files = file.listFiles();
for(File fileItem : files)
{
if(fileItem.isDirectory())
{
getJavaFile(fileItem, al);
}else
{
if(file.getName().endsWith(".java"))
{
//将数据存入集合
al.add(fileItem);
}
}
}
}
}
上面程序无法将i盘下面所有的java文件路径,写入知道位置,这是错在了哪里? |