用户输入文件控制台/命令行 - Java

2022-09-04 19:42:56

Web上大多数在Java中输入文件的示例都引用了固定路径:

File file = new File("myfile.txt");

控制台中的用户输入文件呢?假设我希望用户输入一个文件:

System.out.println("Enter a file to read: ");

我有什么选项(使用尽可能少的代码)可以在用户指定的文件中读取以进行处理。一旦我有了文件,我就可以转换为字符串,等等...我认为它与BufferedReader,Scanner,FileInputStream,DataInputStream等有关...我只是不确定如何结合使用这些来获得最有效的方法。

我是一个初学者,所以我很可能会错过一些简单的东西。但是我已经搞砸了一段时间了,无济于事。

提前致谢。


答案 1

要让用户输入文件名,有几种可能性:

作为命令行参数。

public static void main(String[] args) {
  if (0 < args.length) {
    String filename = args[0];
    File file = new File(filename);
  }
}

通过要求用户键入它:

Scanner scanner = new Scanner(System.in);
System.out.print("Enter a file name: ");
System.out.flush();
String filename = scanner.nextLine();
File file = new File(filename);

答案 2

使用 java.io.BufferedReader

String readLine = "";
try {
      BufferedReader br = new BufferedReader(new FileReader( <the filename> ));
      while ((readLine = br.readLine()) != null) { 
        System.out.println(readLine);
      } // end while 
    } // end try
    catch (IOException e) {
      System.err.println("Error Happened: " + e);
    }

并用您的数据处理填充 while 循环。

问候, 斯蒂芬


推荐