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

如何在Java中使用ClassPathResource访问Maven项目中的文本文件?

颛孙镜
2023-03-14

我正在尝试使用Maven java项目中的“ClassPathResource”访问文件“raw_consuments.txt”。我的文件位于“\src\main\resources\com\thesis\work\raw\u con句.txt”中。我尝试了很多方法,但它总是返回一个错误NullPointerException。我可以从

File testf=new File(obj.getClass(). getResources("raw_sentences.txt"). toURI());

但是ClassPathResrouce不起作用我不知道为什么,请帮忙!

package com.thesis.work;

import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.springframework.core.io.ClassPathResource;

public class App 
{
static final Logger logger = Logger.getLogger("MyLog");  

public static void main( String[] args ) throws IOException, URISyntaxException
{   
    App obj = new App();
    File testf = new File( obj.getClass().getResource( "raw_sentences.txt" ).toURI() );
    logger.log(Level.INFO, "File: ", testf.getPath()); // Works!

    logger.log(Level.INFO, "Load data...\n");
    ClassPathResource resource = new ClassPathResource("raw_sentences.txt");
    logger.log(Level.INFO, "File loaded : ", resource.getPath()); // not Working!
}

static void print(String nd){
    System.out.println(nd);
}}

线程“main”java中出现异常。伊奥。FileNotFoundException:无法打开类路径资源[raw_sequences.txt],因为它在组织中不存在。springframework。果心伊奥。ClassPathResource。getInputStream(ClassPathResource.java:157)位于com。论文工作应用程序。main(App.java:24)

共有2个答案

欧阳何平
2023-03-14

他们都是对的。

假设有java文件com/a/b/App。java,资源目录为com/a/b/test。测试

然后

两者都有

ClassPathResource resource = new ClassPathResource("/com/a/b/test.dat");

ClassPathResource resource = new ClassPathResource("test.dat");

应该没事。

深层原因是,maven会将资源的内容复制到target/classes/

因此,测试。dat应用程序位于同一目录中。类和测试。dat/com/a/b/test。dat两者都是正确的。

这是目标中的文件结构:

  target
    |__
     classes
        └── a
            └── b
                |__
                   test.dat
                   App.class
呼延博易
2023-03-14

试试ClassPathResource=new ClassPathResource(“com/thesis/work/raw_-conversations.txt”)

 类似资料:
  • 问题内容: 我想在页面中显示Web应用程序的当前运行版本。该项目基于Maven,Spring和Wicket。 我想以某种方式获取maven的值并在我的spring XML文件中使用它,类似于我使用Spring PropertyPlaceholderConfigurer读取属性文件以获取我在应用程序中使用的设置的方式。 如果我在Spring配置中将maven 用作变量,则可以执行以下操作: 我怎样才

  • 在阅读了关于这个主题的大约50个不同的线程后,我还没有能够有任何解决方案工作。 我正在尝试访问JAR中的config.properties文件。 null null file.jar MyApp 此处的files.class 等… icon.jpg config.properties

  • 如何使用JavaSelenium访问网站中的文本? HTML快照: 有人能给我解释一下如何使用上图中的java selenium访问demouser和email id吗 https://phptravels.com/demo这是我在做的网站

  • 问题内容: 我不想在Maven存储库(本地/远程)中安装几个jar。特别是我有一些jar文件位于 使用NetBeans打开/编辑时如何将它们包括到我的项目中? 问题答案: 您是否考虑过将这两个JAR添加为依赖项?例如, 请注意,不建议这样做,如果有的话,应该非常谨慎地使用它。

  • 我正在使用Maven Shade为一个Jetty项目创建一个shaded.jar文件。这个项目包括一些资源文件(文本属性文件),我想阅读。 如何访问上述。jar文件中的文件? 从文件提取工具查看jar中的当前文件夹结构如下所示: 我想访问名为的组合jar文件根中的文件。我想从创建的java类访问这个文件。 这里问到的关于访问jar文件的问题是:jar文件中的访问文件? 不能使用,因为它们不使用带阴

  • 问题内容: 我有一个文件,其中包含我的Jenkins Pipeline DSL的语法。在这篇博客文章之后,我将该文件放入了Java项目的文件夹中。现在,当我编辑我的代码(位于项目的根文件夹中)时,没有得到我期望的任何代码完成/语法说明。 我的项目是Java / Gradle项目,我无法从中制作一个Groovy项目。还有其他方法可以使IntelliJ知道该文件并提供代码完成吗? 问题答案: 问题是,