嗨,我想知道如何访问java / maven中项目文件夹中的文件,我曾考虑过使用src / main / resources,但有人告诉我写这个目录中的文件是个坏主意,应该只用于项目的配置,所以我创建了一个新的非源文件夹,但是我想知道是否有一种方法可以在不提供绝对路径的情况下用java访问此文件,因为我需要在其他环境中使用它。任何帮助或其他合适的建议将在这里非常感谢。我将在运行时写入文件。
编辑:
我正在使用它来访问文件:
private static final String ACTUAL_VALUES ="verification/actualCounterValues.csv";
其中
verification
是我在项目中创建的文件夹 最佳答案
据我了解,您的目标是从应用程序内部访问文件,而无需对相对路径进行硬编码,因为您将在不同的环境中运行该文件。
您可能需要解决的第一件事是将文件引用与您的应用程序分离开来-因为如果您移动应用程序,它必须适应新的环境。
您可以通过将绝对文件引用放入系统环境(可通过System.getenv()
方法访问)来解决此问题。另一种方法是将文件路径作为command-line-argument传递。
之后,您必须指定何时应用程序的哪个运行实例将访问该文件。如果您的应用程序在maven和生产环境中分开运行,那么在maven-project中使用相对路径就可以了。然后,Production-app将在其环境中生成并使用其自己的文件。
如果他们必须共享文件,则必须提供从两种环境到该文件路径的物理访问,之后,您可以使用单独的绝对路径(通过cli-args或system-properties传递)或“硬编码”访问该文件。相对路径,用于访问文件链接(指向该绝对文件)。
但是出于持续的维护原因,我不鼓励您使用任何硬编码的特定于配置的变量。
并且,如果这两个应用程序实例将访问两个文件,则还应该注意可能的并发困难(尤其是在文件系统中-参见post)。
关于java - 读取/写入项目文件夹中的文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23364792/