我正在尝试创建一个从文本文件中读取的程序。我使用cmd
并输入javac fileName.java
来编译,然后java -cp . fileName
运行它。但是,我想通过编写来运行程序java fileName textInput.txt
。我已经创建了程序;但我必须在代码中指定文本文件的名称。
有人告诉我这args[0]
应该是文本文件的名称,但我不知道如何实现它。
我还没有发布我的代码,但如果需要,请告诉我。
我正在尝试创建一个从文本文件中读取的程序。我使用cmd
并输入javac fileName.java
来编译,然后java -cp . fileName
运行它。但是,我想通过编写来运行程序java fileName textInput.txt
。我已经创建了程序;但我必须在代码中指定文本文件的名称。
有人告诉我这args[0]
应该是文本文件的名称,但我不知道如何实现它。
我还没有发布我的代码,但如果需要,请告诉我。
如果您的课程如下
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
String filePath = args[0];
// Do whatever with the file path
class fileName {
public static void main(String[] args) {
String filePath = args[0];
//but check if args[0] exist.
}
}
任何 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!");