查找文本文件的路径

时间:2018-10-23 13:26:03

标签: java file filenames

我知道有两种方法可以在JAVA中读取文件时为文件编写路径。

//1st way
    scanner = new Scanner(new File("C:\\Users\\User\\IdeaProjects\\EDSS\\src\\file\\JobList.txt"));
//2nd way
    scanner = new Scanner(new File("src/file/JobList.txt"));

但是,当我尝试通过IntelliJ中的第一种方法通过“构建工件”将格式从.java转换为.exe(Application)时,可以顺利打开应用程序。但是,使用第二种方法,我无法打开该应用程序,我发现这是由于该路径。第一种方法仅允许我仅在计算机上运行该应用程序。如果我使用不同的用户名(例如(“ C:\ Users \ Bernard ...”))将文件复制到朋友的笔记本电脑上,则该应用程序也无法正常工作,我必须手动修改代码中的路径才能运行该应用程序。 是否有任何方法可以准确地搜索路径而无需手动输入完整长度,同时应用程序(.exe)可以使用它?

1 个答案:

答案 0 :(得分:0)

您遇到了绝对路径和相对路径的问题。

您的第一个选择是绝对路径。这意味着您将始终在计算机上的特定位置抓取文件,但是如果该位置不存在,您将找不到文件

您的第二个选项使用相对路径,该路径将根据程序的起始位置查找文件,因此exe可能从不同于您从中构建Java的命令行的位置开始。

解决方案是使用相对路径,并确保Joblist.txt文件始终位于相对于您的运行位置的一个位置。

如果您想知道程序的起始路径在哪里,可以运行以下代码:

System.out.println(new File(".").getAbsolutePath())