JAVA 通过 ARGS 导入文件

JAVA Importing files via ARGS

我需要为 ARGS 输入和输出导入文件。这段代码好像太长了,能再简约一点吗?

import java.io.File;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        System.out.println(args[0]);

        for (int i = 0; i < args.length; i++) {

            File f = new File(args[i]);
            if (f.exists()) {
                System.out.println("file " + args[i] + " exits.");
            } else {
                System.out.println("file " + args[i] + " does not exist");
                System.exit(0);
            }
        }

    }

}

这没有经过测试,但应该可以。它使用功能特性来获取丢失文件的列表。然后,如果它的长度 > 0,你就可以遍历它并打印它们 out/exit.

List<File> missingFiles = Arrays.asList(args)
    .map(f => new File(f))
    .filter(!f.exists())
    .collect(Collectors.toList());

使用 Java 8 语法。

使用 Java 8 个流,您的代码可以重写为:

import java.io.File;
import java.util.Arrays;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        System.out.println(args[0]);

        Arrays.asList(args).stream().map((s) -> new File(s)).forEach((f) -> {
            if (f.exists()) {
                System.out.println("file " + f + " exits.");
            } else {
                System.out.println("file " + f + " does not exist");
                System.exit(0);
            }
        });
    }

}

我认为您的重点不应该放在 LOC 上,而应该放在代码的结构和编写上:)