public static void listJava(File file) throws IOException {
// TODO Auto-generated method stub
File[] dir = file.listFiles();
// 创建一个File数组遍历d盘JAVA文件夹中的所有文件,
File[] dir2 = {}; BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("java.txt"))); String str = "";
for (int i = 0; i < dir.length; i++) {
if (dir[i].isDirectory()) { listJava(dir[i]);
} else {
dir2 = file.listFiles(new FilterByJava());
//添加一个过滤器,只添加.Java文件
for (int j = 0; j < dir2.length; j++) { System.out.println(dir2[j].getName()); // bufw.write(dir2[j].getName()); str = dir2[j].getName();


bufw.write(str);
}
} }
// bufw.write("sff");
bufw.close(); }我输出在控制台上完全没有问题,为什么我就是不能把这些路径保存到java.txt文件中呢?求各位大神解惑JAVA求助

解决方案 »

  1.   

    代码没有任何问题啊,文件就在项目的根目录下。import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.FilenameFilter;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    public class FileTest { public static void main(String[] args) {

    try {
    listJava(new File("D:\\workspace\\test\\src"));
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } }

    public static void listJava(File file) throws IOException {
    // TODO Auto-generated method stub
    File[] dir = file.listFiles();
    // 创建一个File数组遍历d盘JAVA文件夹中的所有文件,
    File[] dir2 = {}; BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(
    new FileOutputStream("java.txt"))); String str = "";
    for (int i = 0; i < dir.length; i++) {
    if (dir[i].isDirectory()) { listJava(dir[i]);
    } else {
    dir2 = file.listFiles(new FilterByJava());
    // 添加一个过滤器,只添加.Java文件
    for (int j = 0; j < dir2.length; j++) { System.out.println(dir2[j].getName()); // bufw.write(dir2[j].getName()); str = dir2[j].getName(); bufw.write(str);
    bufw.newLine();
    }
    } }
    bufw.close(); }}class FilterByJava implements FilenameFilter{ private String type = "java"; 
    @Override
    public boolean accept(File dir, String name) {
    // TODO Auto-generated method stub
    return name.endsWith(type);
    }}
      

  2.   

    new FileOutputStream("java.txt")))  这里需要绝对路径。
      

  3.   

    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStreamWriter;public class KerryPagination<T> {
    public static void listJava() throws IOException {
    // TODO Auto-generated method stub

    // 创建一个File数组遍历d盘JAVA文件夹中的所有文件,
    File[] dir2 = {}; BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(
    new FileOutputStream("c:/java.txt"))); String str = "222222222222222222";
    bufw.write(str); // bufw.write("sff");
    bufw.close(); }
    public static void main(String[] args) throws IOException {
    listJava();
    }}哥们我能写进去啊
      

  4.   

    public static void listJava(String str) throws IOException {
    // TODO Auto-generated method stub
    File file=new File(str);
    if(!file.exists()) return;

    File[] dir = file.listFiles();

    // 创建一个File数组遍历d盘JAVA文件夹中的所有文件,
    BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(
    new FileOutputStream("c:/java.txt",true)));
    for(File f:dir){
    if(f.isDirectory())
    listJava(str+File.separator+f.getName());
    else {
    bufw.write(str);
    }
    }

    // bufw.write("sff");
    bufw.close(); }
    public static void main(String[] args) throws IOException {
    listJava("c:/Drivers");
    }
      

  5.   


    你写的代码是把所有带java的文件夹和他的子目录输入进txt文件中。而我的代码的需求是取得一个文件夹下的所有.java文件的路径写进java.txt文件中。。如果是你那个需求,只需要外循环就可以拉。
      

  6.   

    你研究别人打代码到是行,你都研究下自己的代码啊 我看见你那里错了。
    if (dir[i].isDirectory()) { //这里判断是否是一个文件夹,若果是文件件执行代码listJava(dir[i]);
    } else{这里就不是一个文件夹 ,是个文件,可你这里还在用了个过滤器,文件能用过滤器?要文件夹}
    你写的逻辑是有问题的
      

  7.   

    可是我能把过滤出来的.JAVA路径打印在控制台上啊,如果按你说的逻辑错误,无法实现,为什么能打印呢
      

  8.   


    我就是这样写的,而且是能把那些路径打印出来的,但是就是不能输入到java.TXT文件中保存,我复制了他的代码也是一样的,OKB的文件
      

  9.   


    我就是这样写的,而且是能把那些路径打印出来的,但是就是不能输入到java.TXT文件中保存,我复制了他的代码也是一样的,OKB的文件这就奇怪了,我们都能输出保存到java.txt文件中,里面内容是*.java文件名