有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用于读取库代码中文件的java文件路径

我需要将glsl源文件读入我的程序

我正在编写一个库,并将测试代码放在Eclipse中的一个单独项目中

在测试项目的构建路径中,我将“构建路径上的必需项目”设置为包含我正在编写的库

问题是,当我运行测试项目时,它会查找“src/example/vertexShader.glsl”。Java试图从测试项目中的src文件夹而不是库项目中读取该文件

我已经将文件复制到测试项目并运行它,它工作正常,所以我知道它在错误的项目中查找文件

我正在使用以下代码创建要在文本中阅读的读取器:

BufferedReader reader = new BufferedReader(new FileReader(file));

即使我通过一个不同的项目运行代码,我怎么能让它专门从我的库项目中读取呢


共 (1) 个答案

  1. # 1 楼答案

    从测试项目的角度来看,Eclipse将我的库项目视为已经打包到Jar中的项目。 因此,要从项目内部加载资源(从测试项目的角度来看,它看起来像Jar文件的内部),我需要使用getResourceAsStream,而不是使用file对象的BufferedReader,因为我的glsl源文件将不再是“文件”。 要解决这个问题,我必须将以前的BufferedReader代码更改为:

    InputStream in = Class.class.getResourceAsStream(file);
    BufferedReader reader = new BufferedReader(new InputStreamReader(in));
    

    这解决了这个问题,并允许我从库项目内部加载资源