Java netbeans 8.1:无法识别的文件?
因此,我开发了一个java应用程序,并试图读入该文件,我收到一条错误消息,说configuration.txt文件不存在 以下是文件读取代码:Java netbeans 8.1:无法识别的文件?,java,netbeans,Java,Netbeans,因此,我开发了一个java应用程序,并试图读入该文件,我收到一条错误消息,说configuration.txt文件不存在 以下是文件读取代码: public static void main(String[] args) throws FileNotFoundException { //reading configuration file Scanner readConfigurationFile = new Scanner(new File("configuratio
public static void main(String[] args) throws FileNotFoundException {
//reading configuration file
Scanner readConfigurationFile = new Scanner(new File("configuration.txt"));
是的,我有导入的必要IO库和实用程序
我把文件移到了任何地方(在包中,或者在项目文件夹中,或者在bin文件夹中,等等),并继续测试,但是它不起作用
它工作的唯一方式是当我将其移动到桌面上,并将桌面上的文件路径放入代码中(因此C:\User\..\configuration.txt)
但这不是我想要的,因为其他人必须在不更改代码的情况下运行它
有什么建议/帮助吗?
我在网上到处找,尝试过不同的方法,但都不管用。有些会使我的代码复杂化,所以我避免了
提前感谢如果您将其放在软件包文件夹中,则需要其相对路径 以这个结构为例,
- src
- 主要
- 爪哇
- com
- 范例
- Main.java
- configuration.txt
- 范例
- com
- 爪哇
- 主要
new File("src/main/java/com/example/configuration.txt");
即使您从
Main.java
访问它,如果您将它放在软件包文件夹中,您也需要它的相对路径
以这个结构为例,
- src
- 主要
- 爪哇
- com
- 范例
- Main.java
- configuration.txt
- 范例
- com
- 爪哇
- 主要
new File("src/main/java/com/example/configuration.txt");
即使您从
Main.java
访问它,如果您的配置文件打算在应用程序内部(它将部署在jar或war中),您也不应该将其作为文件使用,而是作为资源使用
假设它的相对路径是org/example/files/configuration.txt
(*)。您可以这样使用它:
InputStream is = getClass().getClassLoader().loadRessourceAsStream(
"org/example/files/configuration.txt");
Scanner readConfigurationFile = new Scanner(is);
(*)如果您使用maven,它可能是src/main/resources/org/…
,如果您使用ant或EclipseNotive编译器,它可能是src/org/…
。如果您的配置文件打算在应用程序内部(它将部署在jar或war内部)您不应将其用作文件,而应将其用作资源
假设它的相对路径是org/example/files/configuration.txt
(*)。您可以这样使用它:
InputStream is = getClass().getClassLoader().loadRessourceAsStream(
"org/example/files/configuration.txt");
Scanner readConfigurationFile = new Scanner(is);
(*)如果使用maven,它可能是src/main/resources/org/…
,如果使用ant或EclipseNotive编译器,它可能是src/org/…
。这应该告诉你它的位置:System.out.println(新文件(“configuration.txt”).getAbsolutePath()代码>@shmosel谢谢!!!lol它应该在项目的第一个文件夹中,在那里构建和清单是这样的:这应该告诉你它的位置:System.out.println(新文件(“configuration.txt”).getAbsolutePath()代码>@shmosel谢谢!!!lol它应该直接进入项目的第一个文件夹中,在那里构建和清单是正确的,但是您应该警告,如果以后使用jar或war,访问源代码树中的文件将导致问题…@SergeBallesta I would,但我不知道你指的是什么:)我只是给了他一个例子,让他不要尝试使用类文件的相对路径谢谢你提供的信息,我知道它应该放在第一个文件夹中正确,但您应该警告,如果以后使用jar或war,访问源代码树中的文件将导致问题…@SergeBallesta我会的,但我不知道您更准确地指的是什么:)我只是给了他一个示例,让他不要尝试使用类文件的相对路径谢谢提供的信息,我发现它应该放在第一个文件夹中谢谢你的信息:)你可以把它作为configuration.txt(不需要目录路径)保存,只要你把它放在从netbeans文件夹访问的第一个项目文件夹下。谢谢你的信息:)你可以把它作为configuration.txt保存(不需要目录路径)只要把它放在从netbeans文件夹访问的第一个项目文件夹下