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

从jar获取txt

蒋英博
2023-03-14

我目前开始编写一个可以加载不同游戏的棋盘游戏游乐场。我将这些游戏存储在名为config.txt的文件中,但我无法访问它。首先,我从我最喜欢的文件方法开始:

String fileAddress = "./resources/config.txt";
fis = new FileInputStream(fileAddress);
reader = new BufferedReader(new InputStreamReader(fis));

但当我建造的时候。jar文件,它停止工作。因为显而易见的原因。所以我四处看看,发现了关于使用getResourceAsStream(String s)方法的建议。因此,我将代码更改为以下方式:

String fileAddress = "./resources/config.txt";
InputStream toReturn=null;
toReturn = this.getClass().getClassLoader().getResourceAsStream(fileAddress);

但在这里我被卡住了。无论我如何调整文件地址(尝试了./config.txt./resources/config.txt./resources/boardgames/config.txt和./resources/boardgames/config.txt)以及使用或省略getClassLoader(),toReturn的结果总是等于NULL,并很快引发NullPointerException。

所需文件的位置如下。由于我没有足够的声誉,我将不得不ASCII艺术文件层次结构。这两个config.txt都是有效的目标。

在文件系统上:

Boardgames
   src
   cache
   classes
   resources
      boardgames
         config.txt
      imgs
      config.txt

内部Jar文件

BoardGames.jar
    boardgames
       <class files>
       config.txt
    imgs
    META-INF
    config.txt

因此,我需要帮助修复代码,以便它正确读取文件。如果您可以包含如何从位于子文件夹imgs中的. png文件中获取ImageIcon的提示,因为我认为一旦我通过config.txt.通过初始化阶段,我就会遇到类似的问题

谢谢你的帮助。

共有1个答案

郭易安
2023-03-14

感谢@EJP和@immibis提供的所有帮助。

this.getClass().getResourceAsStream("boardgames/config.txt");

是最终让我逃离的解决方案

 类似资料:
  • 问题内容: 当我在eclipse中导出可执行jar文件时,也需要使用res文件夹进行编译,当我使用不起作用的方法时。 当前读取的图像代码 代码无效 问题答案: 我现在已经解决了问题-这是有效的代码 fileName的值只是一个图像名称,例如BufferedImage img = loadImage(“ background.png”); 感谢大家的帮助。

  • 当我在eclipse中导出可执行jar文件时,我需要获取res文件夹进行编译,当我使用方法时,它不起作用。 当前读取图像代码 不起作用的代码

  • 问题内容: 有没有人知道您是否可以在Maven存储库中找到源JAR? 问题答案: Maven Micro-Tip:获取源代码和Javadocs 在IDE中使用Maven时,经常会发现IDE需要解析库依赖项的源代码和Javadocs。有一个简单的方法可以实现该目标。 第一个命令将尝试下载pom文件中每个依赖项的源代码。 第二个命令将尝试下载Javadocs。 Maven受这里的图书馆打包人员的摆布。

  • 启动jar时,控制台会说找不到文件,也没有加载字体。我怎样才能解决这个问题? 我得到了这个密码:

  • 我需要从应用程序的根内部获得一个资源,当它打包到JAR中时。我的项目是这样的: 我使用以下代码: 在打包到jar之前运行时,它会发现文件很好(在ProjectRoot内部)。运行jar时,它找不到它,并将此路径转换为。 此代码: 在打包之前运行时,查找中的资源。打包后,它声称从中获取资源。 此代码: 我想做的只是将资源放在中,并且能够从jar外部(从IDE运行类文件时)和内部(使用Maven将文件

  • 问题内容: 我有一个JAR文件,其中包含使用外部模型文件的API。我想将模型文件包含在JAR本身中,以便其他开发人员更容易使用。该API仅接受File对象,有什么方法可以做到这一点?我已经尝试了以下方法,但它们失败了: 使用class.getResourceAsStream()。如果API接受了InputStream,这将起作用。 解析类路径并尝试从条目构建(JAR将显示为app.jar) 我想一