Java 如何使用命令行将文本文件读入扫描仪

How to read a text file in to a scanner using command line in Java

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

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 中有一些简单的命令,您可以在其中键入类似的内容并且它有效-> ./code.out > input.txt

您可以只使用 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 中手动指定要在启动时添加的参数。

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

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

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

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

java yourprogram < input.txt

4) 如果您想将输出保存到文件中:

java yourprogram < input.txt > output.txt

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