查找文本文件的路径
Finding pathway of a text file
我知道在 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"));
但是当我尝试通过名为 "Build Artifacts" 的东西在 IntelliJ 中使用第一种方式将格式从 .java 转换为 .exe(Application) 时,我可以顺利打开应用程序。但是,使用第二种方式,我无法打开应用程序,我发现这是因为路径。第一种方式只允许我 运行 仅在我的计算机中使用应用程序。如果我使用不同的用户名将文件复制到我朋友的笔记本电脑上,例如 ("C:\Users\Bernard..."),该应用程序也无法运行,我必须手动修改代码中的路径以 运行 应用程序。
有没有什么方法可以在不手动输入全长的情况下准确搜索路径,同时应用程序(.exe)可以使用它?
你运行遇到了绝对路径和相对路径的问题。
您的第一个选项是绝对路径。这意味着您将始终在计算机上的特定位置抓取文件,但如果该位置不存在,您将找不到它
您的第二个选项使用相对路径,它会根据程序的起始位置查找文件,因此 exe 可能会从与您构建 java 的命令行不同的位置开始。
解决方案是使用相对路径并确保 Joblist.txt 文件始终位于相对于您的 运行 位置的一个位置。
如果你想知道你的程序的起始路径在哪里你可以运行下面的代码:
System.out.println(new File(".").getAbsolutePath())
我知道在 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"));
但是当我尝试通过名为 "Build Artifacts" 的东西在 IntelliJ 中使用第一种方式将格式从 .java 转换为 .exe(Application) 时,我可以顺利打开应用程序。但是,使用第二种方式,我无法打开应用程序,我发现这是因为路径。第一种方式只允许我 运行 仅在我的计算机中使用应用程序。如果我使用不同的用户名将文件复制到我朋友的笔记本电脑上,例如 ("C:\Users\Bernard..."),该应用程序也无法运行,我必须手动修改代码中的路径以 运行 应用程序。 有没有什么方法可以在不手动输入全长的情况下准确搜索路径,同时应用程序(.exe)可以使用它?
你运行遇到了绝对路径和相对路径的问题。
您的第一个选项是绝对路径。这意味着您将始终在计算机上的特定位置抓取文件,但如果该位置不存在,您将找不到它
您的第二个选项使用相对路径,它会根据程序的起始位置查找文件,因此 exe 可能会从与您构建 java 的命令行不同的位置开始。
解决方案是使用相对路径并确保 Joblist.txt 文件始终位于相对于您的 运行 位置的一个位置。
如果你想知道你的程序的起始路径在哪里你可以运行下面的代码:
System.out.println(new File(".").getAbsolutePath())