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

如果我这样做

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 / sudoku / WEB-INF / classes,基本上是C:\ Users … \ git \ sudo-project \ sudo \ src \ main \ resources

在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服务器。

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

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

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

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

同意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()));` 

还看看: 这个

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

看看它是否适合你。

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