在Java中,如何找到正确的路径来打开';s名称作为命令行参数提供?
我正在开发一个程序,该程序应该将两个文件作为命令行参数,打开这些文件,并从这些文件中读取数据以形成数据结构。 到目前为止,我已经能够使用File()打开文件并使用扫描仪读取数据来创建结构。问题是,我一直在提供这样的文件调用的特定路径在Java中,如何找到正确的路径来打开';s名称作为命令行参数提供?,java,file,text-files,filepath,Java,File,Text Files,Filepath,我正在开发一个程序,该程序应该将两个文件作为命令行参数,打开这些文件,并从这些文件中读取数据以形成数据结构。 到目前为止,我已经能够使用File()打开文件并使用扫描仪读取数据来创建结构。问题是,我一直在提供这样的文件调用的特定路径 File f1 = new File("F:/MinSpan/resources/cities.txt"); Scanner sc1 = new Scanner(f1); 我认为这对试图运行这个程序的人来说是行不通的,因为我已经提供了我的特定txt文件所在的路径—
File f1 = new File("F:/MinSpan/resources/cities.txt");
Scanner sc1 = new Scanner(f1);
我认为这对试图运行这个程序的人来说是行不通的,因为我已经提供了我的特定txt文件所在的路径——它们在我的闪存驱动器(F)和一些文件夹中。是否有一种方法可以根据用户提供的cmd参数为File()传递某种args[]值
我已经尝试过创建新文件(args[2]),但它找不到该文件,因为没有路径。如果您要创建类似于
java-jar program.jar文件的文件
,那么让程序检查索引0
中args[]
中的字符串
然后,构建您的文件。检查文件是否存在(在java.io
中,它是file.exists()。因此,您希望使用:
new File(args[0]);
new File(args[1]);
这有意义吗 这不重要,你应该只使用传递给你的字符串
,测试文件是否存在,并采取适当的措施-如果用户没有传递有效的路径/文件引用,这不是你的错,你只需要处理有意义的可能性,是的。很抱歉,我没有解释整个程序:args[0]被一个驱动器号占用,所以我要传递args[1]和args[2]作为文件名。