Java 如何输入在命令行参数中读取的文件名?

Java 如何输入在命令行参数中读取的文件名?,java,text-files,command-line-arguments,Java,Text Files,Command Line Arguments,因此,对于一个项目,我们需要让程序接受要从main方法的命令行参数中读取的文件名。也就是说,您的程序应该可以通过调用以下命令行执行: ~>java Project inputFile.txt 将文件的修改内容输出到标准输出 但我对如何做到这一点一无所知 PS:我们已经介绍了如何使用命令行参数,但没有介绍如何从这个位置读取文件。有什么建议吗?比如说,您可以根据需要调用您的程序 java MyMainClass /path/to/file 然后在main()方法中使用 File f = n

因此,对于一个项目,我们需要让程序接受要从main方法的命令行参数中读取的文件名。也就是说,您的程序应该可以通过调用以下命令行执行:

~>java Project inputFile.txt
将文件的修改内容输出到标准输出

但我对如何做到这一点一无所知


PS:我们已经介绍了如何使用命令行参数,但没有介绍如何从这个位置读取文件。有什么建议吗?

比如说,您可以根据需要调用您的程序

java MyMainClass /path/to/file
然后在
main()
方法中使用

File f = new File(args[0])
然后,您可能需要验证这一点

f.exists()
f.isFile()
f.canRead()
等等


要真正阅读该文件,您可以按照@Kevin Esche的评论中的建议进行操作,例如,您可以调用您的程序

java MyMainClass /path/to/file
java MainClass <list of arguments>
然后在
main()
方法中使用

File f = new File(args[0])
然后,您可能需要验证这一点

f.exists()
f.isFile()
f.canRead()
等等


要实际读取文件,您可以按照@Kevin Esche的评论中的建议进行操作。这可能会有所帮助,它会将文件读取并打印到控制台

java MainClass <list of arguments>
public static void main(String[] args) {
    File f=  new File(arg[0]);

    InputStream is = new FileInputStream(f);

    int byteReaded;

    while ((byteReaded = is.read())!=-1) {
       System.out.print((char)byteReaded);

    }
}

也许这会有所帮助,它会将文件读取并打印到控制台

public static void main(String[] args) {
    File f=  new File(arg[0]);

    InputStream is = new FileInputStream(f);

    int byteReaded;

    while ((byteReaded = is.read())!=-1) {
       System.out.print((char)byteReaded);

    }
}

从控制台运行java程序时,调用:

java程序名以空格分隔的输入列表

因此,在您的情况下,您有:

java项目inputFile.txt

当JVM启动并调用
main()
时,它将获取项目名称后面的所有内容,并创建一个由空格分隔的字符串数组

因此,在我的第一行caommand中,我会得到:

{"list" + "of" + "inputs" + "separated" + "by" + "space"}
此字符串数组将在主函数中进入您的程序:

public static void main(String[] args) { ... }
因此,在您的情况下,
args[0]
将是您要查找的文件名。然后可以创建各种类型的文件读取器。如果不在文件名前面添加任何路径,它将在src文件夹所在的文件夹中查找该文件


希望这能有所帮助。

从您调用的控制台运行java程序时:

java程序名以空格分隔的输入列表

因此,在您的情况下,您有:

java项目inputFile.txt

当JVM启动并调用
main()
时,它将获取项目名称后面的所有内容,并创建一个由空格分隔的字符串数组

因此,在我的第一行caommand中,我会得到:

{"list" + "of" + "inputs" + "separated" + "by" + "space"}
此字符串数组将在主函数中进入您的程序:

public static void main(String[] args) { ... }
因此,在您的情况下,
args[0]
将是您要查找的文件名。然后可以创建各种类型的文件读取器。如果不在文件名前面添加任何路径,它将在src文件夹所在的文件夹中查找该文件


希望这有帮助。

您不需要从参数中读取文件,只需读取文件名和/或路径即可。在代码中,您读取为字符串:File f=new File(args[0]);重复的问题无法回答此问题。您不会从参数中读取文件,只读取文件名和/或路径。在代码中,您读取为字符串:File f=new File(args[0]);重复的问题不能回答这个问题。请注意,OP实际上没有询问标题中的问题:)确实:)为了完整性,我引用了@Kevin Esche的评论,链接到文件的实际阅读。请注意,OP实际上没有问标题中的问题:)确实:)为了完整性,我引用了@Kevin Esche的评论,链接到文件的实际读取。与其他回答一样:
到目前为止,我们已经介绍了如何使用命令行参数,但没有介绍如何从该位置读取文件。有什么建议吗?
我建议你修改那些课堂笔记。因为所有的答案都是你已经知道的。请不要用别的方法。这只是一个礼貌的建议。与其他答案一样:
到目前为止,我们已经介绍了如何使用命令行参数,但没有介绍如何从该位置读取文件。有什么建议吗?
我建议你修改那些课堂笔记。因为所有的答案都是你已经知道的。请不要用别的方法。只是给你一个礼貌的建议。