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

时间:2011-06-09 05:49:22

标签: java file-io console

Web上用于输入Java文件的大多数示例都是指固定路径:

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

控制台的用户输入文件怎么样?假设我希望用户输入文件:

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

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

我是初学者,所以我可能会错过一些简单的事情。但是我一直在弄乱这一段时间而现在无济于事。

提前致谢。

2 个答案:

答案 0 :(得分:19)

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

作为命令行参数。

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

答案 1 :(得分:1)

使用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循环。

此致  斯特凡