1

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

有人告诉我这args[0]应该是文本文件的名称,但我不知道如何实现它。

我还没有发布我的代码,但如果需要,请告诉我。

4

4 回答 4

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
于 2013-03-08T21:04:12.363 回答
3
String filePath = args[0];
// Do whatever with the file path
于 2013-03-08T21:03:37.123 回答
3
class fileName {

   public static void main(String[] args) {

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

    }
}
于 2013-03-08T21:04:28.290 回答
3

任何 Java 程序的 main 方法都会接收一个值数组,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!");
于 2013-03-08T21:05:38.963 回答