如何在 src/main/resources 中创建文件

sbo*_*lla 1 java file-io file maven

如果我这样做

fis = new FileInputStream(new File(".").getAbsolutePath() + "/sudoinput.txt");
Run Code Online (Sandbox Code Playgroud)

它试图写入服务器上的这个位置。我不确定这是否是一个可写的地方。

FILE NAME (fos)::::::::::::::::::/opt/tomcat/temp/./sudoinput.txt
FILE NAME (fis)::::::::::::::::::/opt/tomcat/temp/./sudoinput.txt
Run Code Online (Sandbox Code Playgroud)

我想写入 webapps/sudoku/WEB-INF/classes 基本上是 C:\Users...\git\sudo-project\sudo\src\main\resources

在 Eclipse Windows 7 上,如果我给出这个错误 src\main\resources\sudoinput.txt (The system cannot find the path specified)

fis = new FileInputStream("src/main/resources/sudoinput.txt");
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

fis = new FileInputStream("src\\main\\resources\\sudoinput.txt");
Run Code Online (Sandbox Code Playgroud)

但不起作用。

我应该如何创建一个 fileinputstream 才能写入 src/main/resources ?请注意,我正在使用 eclipse windows 进行开发,如果这改变了需要指定路径的方式,我会将 .war 文件上传到 unix 服务器。

Beh*_*ehe 5

src/main/resources文件夹是一个文件夹,应该包含您的应用程序的资源。正如您所指出的,maven 将这些文件打包到文件的根目录中,以便您可以在库中访问它们。

查看有关标准目录布局Maven 文档

在某些情况下,可以写入上下文,但尝试这样做并不是一个好主意。根据您的 web 应用程序的部署方式,您可能无法写入目录。考虑部署 .war 存档的情况。这意味着您尝试写入战争档案,这是不可能的。

一个更好的主意是使用临时文件。通过这种方式,无论您的 Web 应用程序的部署方式如何,您都可以确保这将起作用。