Java 如何输入在命令行参数中读取的文件名?
因此,对于一个项目,我们需要让程序接受要从main方法的命令行参数中读取的文件名。也就是说,您的程序应该可以通过调用以下命令行执行: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
~>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的评论,链接到文件的实际读取。与其他回答一样:
到目前为止,我们已经介绍了如何使用命令行参数,但没有介绍如何从该位置读取文件。有什么建议吗?
我建议你修改那些课堂笔记。因为所有的答案都是你已经知道的。请不要用别的方法。这只是一个礼貌的建议。与其他答案一样:到目前为止,我们已经介绍了如何使用命令行参数,但没有介绍如何从该位置读取文件。有什么建议吗?
我建议你修改那些课堂笔记。因为所有的答案都是你已经知道的。请不要用别的方法。只是给你一个礼貌的建议。