如何使用Java中的命令行将文本文件读入扫描程序

时间:2015-02-12 02:17:28

标签: java command-line command-line-arguments

我有一小段代码会要求用户输入输入,例如

5
12
59
58
28
58

第一个数字表示我需要创建的数组大小,其余数字将存储在该数组中。因此,对于给定的输入,将创建大小为5的数组,并且后面的数字将存储在数组中。

我的代码

public static void main(String[] args) {
         Scanner sc = new Scanner(System.in);
         int size = sc.nextInt();
         int[] array = new int[size];

        for(int i =0; i<size; i++)
        {
            array[i] = sc.nextInt();
        }                       
}

我想知道有没有办法只提供文本文件而不是手动输入数字。我的意思是知道有方法可以读取文本文件,但有没有办法在命令行中提供它。我知道在c中有一些简单的命令,你可以输入类似的东西,它可以工作 - &gt; ./code.out > input.txt

2 个答案:

答案 0 :(得分:3)

假设您使用的是bash或POSIX命令行界面,那真的很简单。

1)创建一个名为“input.txt”的文件,您将保留输入(在本例中为数字)。

2)将输入保存到文件中(即通过将数字复制并粘贴到文件中)。

3)假设您使用javac编译了java文件,请运行如下程序:

java yourprogram < input.txt

4)也许如果你想将输出保存到文件中:

java yourprogram < input.txt > output.txt

要了解有关 bash重定向的更多信息,请阅读与此链接相对应的网页:https://www.gnu.org/software/bash/manual/html_node/Redirections.html

答案 1 :(得分:1)

您可以使用Scanner

Scanner scn = new Scanner(new File("myFile.txt"));

使用命令行,您将使用psv main中提供的参数。

public static void main(String args[]) {

    Scanner scn = new Scanner(new File(args[0]));
}

然后,您可以从命令行运行.jar文件,并将其传递给路径。

  

java -jar myJar.jar“/home/matt/myFile.txt”

在Eclipse中,您可以进入启动配置编辑器,并从Eclipse中手动指定要在启动时添加的参数。