【问题标题】:List files in directory numbered, when number is pressed it displays contents of file (.txt files only)列出编号目录中的文件,按下编号时会显示文件内容(仅限 .txt 文件)
【发布时间】:2015-09-04 09:07:47
【问题描述】:

我对 java 很陌生,我正在为自己做一个小项目。我目前的代码将我的“blah”目录中的所有文件列出到控制台。我想要在新行上用数字列出的文件,当您输入数字(使用扫描仪?)时,它会显示文件的内容。我猜我需要一个数组什么的?

这是我的代码:

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());
        }
    }


}

希望你能帮忙:)

【问题讨论】:

  • 您不能在控制台应用程序中执行此操作(按按钮),您需要一个 GUI 来实现该操作,或者您可以让用户通过输入数字来选择文件。
  • 是的,我就是这个意思,抱歉,我会编辑以使其更清晰哈哈
  • 您可以拥有一个包含所有文件名的数组,并使用简单的本地 int 计数器变量(即 1、2、3 等)打印它们,并使用扫描仪获取输入,例如“userInput”和从数组中获取文件名作为array[userInput]。

标签: java arrays console


【解决方案1】:

我会建议:

  • 您将 int i 显示为数字:

    System.out.println(i + " - 文件 " + listOfFiles[i].getName());

  • 等待用户输入内容

  • 如果它是一个数字并且number &lt; listOfFiles.length 并且所选位置包含以“.txt”结尾的文件,则显示该文件

类似的东西:

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();
            }
        }
    }
}

【讨论】:

  • 我明白了!非常感谢:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-31
  • 1970-01-01
  • 2020-08-07
  • 1970-01-01
  • 2017-08-21
  • 2020-04-17
  • 2011-01-29
相关资源
最近更新 更多