📜  java 从命令行参数读取文件 - Java (1)

📅  最后修改于: 2023-12-03 14:42:17.612000             🧑  作者: Mango

Java 从命令行参数读取文件

在 Java 程序中,我们常常需要从命令行参数中读取文件名或路径等信息。本文将介绍如何在 Java 中从命令行参数中读取文件,并给出完整代码实现。

读取命令行参数

在 Java 中,我们可以使用 args 数组来读取命令行参数。args 数组包含了所有传给程序的命令行参数,其中 args[0] 是第一个命令行参数,args[1] 是第二个命令行参数,以此类推。

public class ReadFileFromArgs {
    public static void main(String[] args) {
        if (args.length != 1) {
            System.out.println("需要一个文件名参数");
            return;
        }
        String fileName = args[0];
        // TODO: 从 fileName 中读取文件内容
    }
}

上述代码中,我们首先判断 args 数组的长度是否为 1,如果不是,程序将输出提示语并退出。如果长度为 1,则我们将数组中的第一个元素赋值给 fileName 变量。

读取文件内容

接下来,我们需要从 fileName 中读取文件内容。我们可以使用 Java 的输入输出流(InputStreamFileInputStream)来实现。读取文件内容的核心代码如下:

File file = new File(fileName);
if (!file.exists() || !file.isFile()) {
    System.out.println("文件不存在或不是文件");
    return;
}
try (InputStream input = new FileInputStream(file)) {
    ByteArrayOutputStream output = new ByteArrayOutputStream();
    byte[] buffer = new byte[1024];
    int n = 0;
    while (-1 != (n = input.read(buffer))) {
        output.write(buffer, 0, n);
    }
    byte[] content = output.toByteArray();
    // TODO: 处理文件内容
} catch (IOException e) {
    e.printStackTrace();
}

上述代码中,我们首先判断 fileName 对应的文件是否存在且是否是文件,如果不是,则输出提示语并退出。如果是,则创建 FileInputStream 对象并读取文件内容,最后将内容保存到 content 数组中。

总结

本文介绍了如何从 Java 命令行参数中读取文件,并给出了完整代码实现。我们首先使用 args 数组读取命令行参数,然后使用 FileInputStream 读取文件内容。如果有需要,我们也可以使用其他输入输出流来实现不同的读取方式。