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

时间:2013-07-09 17:03:34

标签: java file maven file-io

如果我这样做

fis = new FileInputStream(new File(".").getAbsolutePath() + "/sudoinput.txt");

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

FILE NAME (fos)::::::::::::::::::/opt/tomcat/temp/./sudoinput.txt
FILE NAME (fis)::::::::::::::::::/opt/tomcat/temp/./sudoinput.txt

我想写信给     的webapps /数独/ WEB-INF / classes目录 这基本上是     C:\用户... \ GIT中\须藤项目\须藤\ SRC \主\资源

在Eclipse Windows 7上我得到了这个 错误 src \ main \ resources \ sudoinput.txt(系统找不到指定的路径) 如果我给

fis = new FileInputStream("src/main/resources/sudoinput.txt");

我也试过这个:

fis = new FileInputStream("src\\main\\resources\\sudoinput.txt");

但不起作用。

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

4 个答案:

答案 0 :(得分:4)

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

查看Maven documentation about the standard directory layout

在某些情况下,可以写入上下文但尝试它不是一个好主意。根据您的webapp的部署方式,您可能能够写入目录。考虑部署.war存档时的情况。这意味着你试图写入war档案,这是不可能的。

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

答案 1 :(得分:2)

同意Sandiip Patil。如果您的资源中没有文件夹,则路径为/sudoinput.txt或文件夹/folder_name/sudoinput.txt.。要从资源获取文件,您应使用YourClass.class.getResource("/filename.txt");

例如

Scanner scanner = new Scanner(TestStats.class.getResourceAsStream("/123.txt"));

Scanner scanner = new Scanner(new `FileInputStream(TestStats.class.getResource("/123.txt").getPath()));`

另请参阅:this

答案 2 :(得分:1)

您可以保留在资源下创建的文件并调用.class.getresource(your_file_name_or_path_separated_with_forward_slash);

看看它是否适合你。

答案 3 :(得分:0)

如果您想在webapps/sudoku/WEB-INF/classes中创建最终在创建的WAR文件中的文件,可以通过将所需文件放入src/main/resources/来实现 换言之,您需要创建文件夹src/main/resources并将您喜欢的文件放入此目录。