gpt4 book ai didi

java - 如何递归打印文件数组?

转载 作者:行者123 更新时间:2023-12-01 07:40:10 26 4
gpt4 key购买 nike

我想知道如何递归打印文件[]。我已经编写了一个程序,但似乎该程序超出范围,我不知道如何修复它。有人可以给我一些关于如何解决这个问题的指示或提示吗?谢谢。

import java.io.*;

public class RecursiveDir {

static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));


public static void main(String[]args) throws IOException {
System.out.print("Please enter a directory name: ");
File f = new File(br.readLine());

FileFilter filter = new FileFilter() {

public boolean accept(File f) {
if(f.isDirectory()) {
return true;
}
return false;
}

};

File[] list = f.listFiles(filter);
System.out.println(returnDir(list,list.length));
}

public static File returnDir(File[] file,int counter) {
File f = file[counter];
if(counter == 0) {
return file[0];
}else {
return f = returnDir(file,counter--);
}
}
}

编辑:我按照下面的评论进行了更改 return f = returnDir(file,counter--);return f = returnDir(file,--counter);并且还改变了returnDir(list,list.length);returnDir(list,list.length-1); ,我的代码运行良好,但现在没有打印任何内容。

最佳答案

您将超出数组范围,因为您需要传递 list.length - 1到方法。

即使你这样做了,你也会有无限递归,因为 counter--将使用 counter 的值,然后递减它。这意味着您正在调用 returnDir当前值为counter.使用 --counter ,或counter - 1 .

关于java - 如何递归打印文件数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6022490/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com