如您所见,该文件位于类文件所在的同一文件夹中。当我试图让它打印到它的路径时,这是一个无赖,因为无论我输入什么名称,它总是会键入该发明文件名的完整路径。该文件以逗号分隔,我复制粘贴到gedit并尝试各种扩展,csv,txt和没有扩展名。
我要做的是将其导入数组,但错误很明显,没有这样的文件或目录。
答案 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)
该文件需要放在项目的根文件夹中。