【问题标题】:How to create a file in src/main/resources如何在 src/main/resources 中创建文件
【发布时间】:2013-07-09 17:03:33
【问题描述】:

如果我这样做

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/类 这基本上是 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");

但不起作用。

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

【问题讨论】:

    标签: java file maven file-io


    【解决方案1】:

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

    看看Maven documentation about the standard directory layout

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

    更好的办法是使用临时文件。这样,无论您的 Web 应用程序采用何种部署方式,您都可以确保这将起作用。

    【讨论】:

      【解决方案2】:

      同意桑迪普·帕蒂尔的观点。如果您的资源中没有文件夹,则路径将是/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

      【讨论】:

        【解决方案3】:

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

        看看它是否适合你。

        【讨论】:

        • 我不确定我是否在关注;如何在 src/main/resources 中保留或创建文件? ; fis = new FileInputStream("/src/main/resources/sudoinput.txt");不工作。我没有事先从 eclipse 创建这个文件来写入它。它是从代码创建的东西
        【解决方案4】:

        如果您想在webapps/sudoku/WEB-INF/classes 中创建文件,这最终在创建的WAR 文件中,可以通过将您想要的文件放入src/main/resources/ 来实现 也就是说,你需要创建文件夹src/main/resources,并将你喜欢的文件放到这个目录中。

        【讨论】:

          猜你喜欢
          • 2016-08-22
          • 2015-03-22
          • 2019-01-08
          • 1970-01-01
          • 2015-02-26
          • 1970-01-01
          • 2020-07-24
          • 1970-01-01
          相关资源
          最近更新 更多