类文件夹里面的文本文件,却找不到它

时间:2017-06-07 13:44:58

标签: java

enter image description here

如您所见,该文件位于类文件所在的同一文件夹中。当我试图让它打印到它的路径时,这是一个无赖,因为无论我输入什么名称,它总是会键入该发明文件名的完整路径。该文件以逗号分隔,我复制粘贴到gedit并尝试各种扩展,csv,txt和没有扩展名。

我要做的是将其导入数组,但错误很明显,没有这样的文件或目录。

4 个答案:

答案 0 :(得分:2)

您可以尝试从System.getProperty()获取根文件夹的路径。然后只需将基础文件夹名称附加到所需的文件名。

private static String CLASS_PATH = System.getProperty("user.dir");
public static String FILE_PATH= CLASS_PATH + File.separator + "Source Packages"+ File.separator + "javaapplication2"+ File.separator + "pedidos.txt";

答案 1 :(得分:1)

不要使用相对路径来获取随应用程序打包的文件,它是肮脏且无意义的。

路径与启动 java进程的文件夹相关。它(通常)不是您的应用程序源目录,也不是您的file.java目录。

即便如此,将文件(资源)放入应用程序源代码中也是一种可怕的做法。因为你的java文件需要被编译(并且经常打包成jar),所以当前的体系结构在打包后可能没有更多的意义。

如果您想引用计算机上的某个文件,请将其放在合理的文件夹中(例如/ user / documents)并以绝对路径获取。

如果您希望将文件与应用程序打包在一起,请将其放在资源文件夹中,将其打包在jar中并使用classpath://方案获取路径。

答案 2 :(得分:1)

您应该将程序所需的文件放在应用程序的类路径中,以便将它们打包到JAR文件中。然后,您可以使用getResourceAsStream()阅读它们。这里有一个关于如何工作的想法。

public class ArrayMain {

public static void main(String[] args) {
    Scanner in = new Scanner(ArrayMain.class.getResourceAsStream("numbers.txt"));
    String[] numbers = in.nextLine().split(",");
    for (int i = 0; i < numbers.length; i++) {
        System.out.println(numbers[i]);
    }
}

}

文件numbers.txt是一个简单的文件,如下所示:

  

1,2,3,4,5,6,7,8,9

答案 3 :(得分:-1)

该文件需要放在项目的根文件夹中。