2015-02-12 54 views
0

我有一个很小的代码片段,将要求用户输入读取文本文件扫描仪输入诸如如何使用命令行中的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

回答

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

+0

究竟是我在找什么!让我的生活变得轻松。 – user1010101 2015-02-12 03:57:56

+1

@ user2733436:没问题。作为主要的C/C++和Python程序员,我真的很感谢命令行的价值。学习Bash脚本,如何制作Makefile,I/O重定向和管道等,真正让您的生活更轻松的就是程序员。 – 2015-02-13 00:40:58

+0

是的,这节省了我大量的时间,我可以轻松地将大量输入文件提供给我的算法,并检查所需的输出。 – user1010101 2015-02-13 02:17:26

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的罐子myJar.jar “/home/matt/myFile.txt”

在Eclipse中,你可以进入你的启动配置edtor和manualy指定参数,从Eclipse内部。