我正在尝试创建一个从文本文件中读取的程序。我使用cmd
并输入javac fileName.java
进行编译,然后java -cp . fileName
运行它。但是,我想通过编写java fileName textInput.txt
来运行该程序。我已经创建了该程序;但我必须在代码中指定文本文件的名称。
我被告知args[0]
应该是文本文件的名称,但我不确定如何实现它。
我没有发布我的代码,但请告诉我是否需要。
答案 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!");