vic*_*ugo 28

只传递文件的路径,在程序内部使用Java File类来处理它

这将第一个参数作为文件路径:

import java.io.File;

public class SomeProgram {
    public static void main(String[] args) {
        if(args.length > 0) {
            File file = new File(args[0]);

            // Work with your 'file' object here
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


cd1*_*cd1 8

在Java中,该main方法接收一个String数组作为参数,您可能已经注意到了.您可以为参数指定另一个名称args,但这是最常用的名称.

数组args包含用户在启动程序时在类名后面键入的值.例如,要运行名为Foo的类,用户必须键入:

[user @ desktop~] $ java Foo

用户在类名后键入的所有内容都被视为参数.例如:

[user @ desktop~] $ java Foo bar baz

现在你的程序收到了两个参数:barbaz.那些参数存储在数组中args.作为常规Java数组,可以通过访问来检索第一个参数,可以通过访问来检索args[0]第二个参数args[1],依此类推.如果你试图访问一个无效的位置(当用户没有输入你想要的那个)时,该语句将抛出一个ArrayIndexOutOfBoundsException,就像它对任何数组一样.您可以查看输入的参数数量args.length.

所以,回到你的问题.用户可以将文件名作为命令行参数通知,您可以通过main方法的参数读取该值,通常称为args.你必须检查他是否真的输入了一些参数(检查数组长度),如果没关系,你可以访问args[0]他所输入的内容.然后,您可以File根据该字符串创建一个对象,并执行您想要对其执行的操作.总是检查用户是否输入了您期望的参数数量,否则在访问阵列时会出现异常.

这是一个如何使用命令行参数的完整示例:

public class Foo {
    public static void main(String[] args) {
        if (args.length == 0) {
            System.out.println("no arguments were given.");
        }
        else {
            for (String a : args) {
                System.out.println(a);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

该类将解析用户通知的参数.如果他没有输入任何内容,该课程将打印出"没有给出任何论据"的信息.如果他通知任意数量的参数,那么这些参数将显示在屏幕上.所以,使用我在这个答案上给出的两个例子来运行这个类,输出将是:

[user @ desktop~] $ java Foo
没有给出任何参数.
[user @ desktop~] $ java Foo bar baz
bar
baz