当前位置: 首页 > 知识库问答 >
问题:

在web应用程序中从不同的包读取文件

符风畔
2023-03-14

我在包'\src\main\resources\'中有一个文件。我希望在位于'src\main\java\com\xxxx\xxxx\services\'的。java文件中读取该文件。当我运行以下代码时,

File USER_DIRECTORY = new File( System.getProperty("user.dir") );
File DOCUMENT_DIRECTORY = new File( USER_DIRECTORY, "src/test/resources" );
File template = new File( DOCUMENT_DIRECTORY, "input.docx" );

我将USER_DIRECTORY的值设置为'C:\workspace\apache-tomcat-7.0.70\bin',将DOCUMENT_DIRECTORY的值设置为'C:\workspace\apache-tomcat-7.0.70\bin\src\test\resources'。目标文件不存在于该位置。如果我在单元测试中运行相同的代码,我会得到正确的值。有人能帮我从不同的包中读取一个文件吗?如果需要更多的信息来更好地理解这个问题,请让我知道。

共有1个答案

王鹏飞
2023-03-14

在Maven/gradle中,默认情况下,位于src\main\resources中的资源将位于类路径中。

因此,如果在src\main\resources中有一个名为input.docx的文件,您可以按照以下方式读取该文件

File documentFile = new File(SomeClass.class.getResource("/input.docx").toURI());

如果文件位于子文件夹中,如sec\main\resources\documents,则使用

File documentFile = new File(SomeClass.class.getResource("/documents/input.docx"));
 类似资料:
  • 我一直在努力阅读java项目中的文本文件,我一整天都在寻找解决方案,我尝试了很多方法,但没有一个有效。其中一些:(另外,我必须使用文件和扫描程序类) 异常线程"main"java.nio.file.NoSuchFileExc0019: test\fileTest.txt 异常线程"main"java.lang.NullPointerExc0019 线程“main”java中出现异常。木卫一。Fil

  • 问题内容: 我有一个包含清单文件的webapp,在执行蚂蚁构建任务时,我在其中写入应用程序的当前版本。清单文件已正确创建,但是在运行时尝试读取清单文件时,会出现一些奇怪的副作用。我在清单中读取的代码是这样的: 当我将eclipse附加到tomcat时,我看到上面的代码起作用了,但是它似乎得到了与我期望的清单文件不同的清单文件,由于蚂蚁版本和构建时间戳都不同,所以我可以看出来。然后,我将“ META

  • 这是我的选项2选项 但它给出了一个错误的说法 java.io.FileNotFoundException:C:\users\businesssupport\documents\netBeansProjects\InvoiceGenerator\resources\hemaslogo.jpg(系统找不到指定的路径)

  • 我已经在谷歌驱动器的应用程序文件夹中创建了一个文件。 编写文件的代码 读取文件的代码 driveContentsResult的状态为false。我看过谷歌的演示,但找不到解决方案。谁能帮我找出我做错了什么,或者我可以尝试的其他方法是什么。

  • 实际上,我不确定是否有可能强制其他应用程序从返回所需字节的Java进程中读取文件,而不是从磁盘中读取文件,所以首先,这些信息可能会有所帮助。 你也可以忽略强迫的想法!我是否可以从我的java应用程序中打开其他应用程序,例如Adobe Acrobat Reader,并将字节注入其中,而不是单独打开它并用它读取pdf文件? 如果可能的话,有人能解释一下吗?我在网上搜索了太多,但没有找到答案。 你可能还

  • 我有一个camel应用程序,它使用SSH私钥连接到SFTP服务器。如果我从文件中读取id_rsa文件,我就能够连接到服务器。如本例所示,它正在从文件加载。 我想在运行时动态地提供私钥。这意味着在应用中。spring boot应用程序中的yaml,将由docker容器环境变量替换。 我得到了这个例外 经过一些调试,我明白这是的问题。如果我从文件中读取,则私钥包含\n个字符。但是如果我从. yaml文