如何使用java程序访问输入文件< "文件名&#34 ;?

时间:2015-01-28 23:25:13

标签: java file-io input command-line arguments

我正在做一项我应该使用文件的作业。测试人员使用命令参数

  

" java puzzle< sample_input_1.txt"

使用我的程序运行该文件。我的节目是"拼图"并且文件是" sample_input_1.txt"。

我一直在搜索,但我不太确定如何从此文件中检索数据。我曾经把文件路径作为main的参数,我用扫描仪来读取。

如何在编程和检索数据时访问此文件?我想做一些像扫描仪读取它的东西。

谢谢你们!

3 个答案:

答案 0 :(得分:1)

它在您的标准输入流上。为了澄清,如果您习惯使用接受文件的Scanner构造函数(如下所示):

Scanner scanner = new Scanner(new File(args[0]));

然后使用接受InputStream的Scanner的构造函数,并传递System.in:

Scanner scanner = new Scanner(System.in);

您应该能够以与之后习惯相同的方式使用扫描仪。

答案 1 :(得分:0)

它来自stdin流(System.in)。命令末尾的< sample_input_1.txt将stdin流重定向到给定文件。它几乎存在于每个终端程序中。可以找到更多信息here

答案 2 :(得分:0)

在我看来,最简单的方法是使用 InputStream

try {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    String word;
    do {
    word = br.readLine();
    if (word != null) {
        list.add(word); //if you want add the file content to an ArrayList
    } else {
        return; //case file is empty, program is finished
    }
    } while (word != null);

} catch (Exception e) {
    System.err.println("Error:" + e.getMessage());
}