如何在命令行中指定文本文件

时间:2013-03-08 21:01:23

标签: java command-line

我正在尝试创建一个从文本文件中读取的程序。我使用cmd并输入javac fileName.java进行编译,然后java -cp . fileName运行它。但是,我想通过编写java fileName textInput.txt来运行该程序。我已经创建了该程序;但我必须在代码中指定文本文件的名称。

我被告知args[0]应该是文本文件的名称,但我不确定如何实现它。

我没有发布我的代码,但请告诉我是否需要。

4 个答案:

答案 0 :(得分:5)

如果您的课程如下

public class YourClass {
    public static void main(String[] args) {
        String fileName = args[0]; // would contain "textInput.txt"
        // work with fileName
    }
}

java YourClass textInput.txt运行您的程序。

String数组args包含运行java命令时传递的所有参数。它可以是任何东西,不限于文件名。正如Bailey S所说,这些参数是基于shell的标记化而被标记化的。索引从0开始。

       java YourClass arg1 arg2 arg3
                       ^    ^    ^
index:                 0    1    2

答案 1 :(得分:3)

String filePath = args[0];
// Do whatever with the file path

答案 2 :(得分:3)

class fileName {

   public static void main(String[] args) {

       String filePath = args[0];
       //but check if args[0] exist.

    }
}

答案 3 :(得分:3)

任何Java程序的主方法都会收到一个String值数组,这些值是通过命令行传递的参数:

java javaClass.class arg0 arg1 arg2

以下是您从代码中捕获的内容:

public static void main(String[] args)
{
    System.out.println(args[0]); // prints arg0
    System.out.println(args[1]); // prints arg1
    System.out.println(args[2]); // prints arg2
}

最好在使用它们之前检查传递的参数数量:

if(args.length < 0) System.out.println("No arguments are passed!");