【问题标题】:How to read a text file in to a scanner using command line in Java如何使用 Java 中的命令行将文本文件读入扫描仪
【发布时间】:2015-04-12 15:19:38
【问题描述】:

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

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 &gt; input.txt

【问题讨论】:

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


    【解决方案1】:

    假设您使用的是 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

    【讨论】:

    • 正是我想要的!让我的生活变得轻松。
    • 是的,这为我节省了大量时间,我可以轻松地将大型输入文件提供给我的算法并检查所需的输出。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多