Java 列出已编号目录中的文件,当按下“编号”时,将显示文件内容(.txt文件)

Java 列出已编号目录中的文件,当按下“编号”时,将显示文件内容(.txt文件),java,arrays,console,Java,Arrays,Console,我对java非常陌生,我正在为自己做一个小项目。目前我的代码将“blah”目录中的所有文件都列在控制台上。我希望在新行中列出带有数字的文件,当您使用scanner?键入数字时,它会显示文件的内容。我想我需要一个数组什么的 这是我的密码: public static void main(String[] args) { File folder = new File("C:\\Users\\Administrator\\Documents\\blah"); File[] listO

我对java非常陌生,我正在为自己做一个小项目。目前我的代码将“blah”目录中的所有文件都列在控制台上。我希望在新行中列出带有数字的文件,当您使用scanner?键入数字时,它会显示文件的内容。我想我需要一个数组什么的

这是我的密码:

public static void main(String[] args) {

    File folder = new File("C:\\Users\\Administrator\\Documents\\blah");
    File[] listOfFiles = folder.listFiles();

    for (int i = 0; i < listOfFiles.length; i++) {
        if (listOfFiles[i].isFile()) {
            System.out.println("File " + listOfFiles[i].getName());
        } else if (listOfFiles[i].isDirectory()) {
            System.out.println("Directory " + listOfFiles[i].getName());
        }
    }


}
希望您能提供帮助:

我建议:

显示数字的整数i:

System.out.printlni+-File+listOfFiles[i].getName

等待用户输入一些内容

如果是一个数字,且该数字
public static void main(String[] args) {

    File folder = new File("C:\\Users\\Administrator\\Documents\\blah");
    File[] listOfFiles = folder.listFiles();

    for (int i = 0; i < listOfFiles.length; i++) {
        if (listOfFiles[i].isFile()) {
            System.out.println(i + " - File " + listOfFiles[i].getName());
        } else if (listOfFiles[i].isDirectory()) {
            System.out.println(i + " - Directory " + listOfFiles[i].getName());
        }
    }

    System.out.println("Enter a number : ");

    Scanner scanner = new Scanner(System.in);
    BufferedReader buffer = null;
    try {
        String text = scanner.next();
        int number = Integer.parseInt(text);
        if (number < listOfFiles.length && listOfFiles[number].isFile() && listOfFiles[number].getName().endsWith(".txt")) {
            FileReader fileReader = new FileReader(listOfFiles[number]);
            buffer = new BufferedReader(fileReader);
            String line = null;
            while ((line = buffer.readLine()) != null) {
                System.out.println(line);
            }
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        scanner.close();
        if (buffer != null) {
            try {
                buffer.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

你不能在控制台应用程序中按按钮,你需要一个GUI,或者你可以让用户通过键入一个数字来选择一个文件。是的,这就是我的意思,抱歉,我将进行编辑以使其更清晰。hahaYou可以拥有一个包含所有文件名的数组,并使用一个简单的局部int计数器变量(即1、2、3等)打印它们,然后使用扫描仪获取输入,例如“userInput”,并从数组中获取文件名作为数组[userInput]。我明白了!非常感谢你:D