1

我有一个在我的游戏中使用的库 ShaderUtils。现在,当我使用这个库导出我的游戏时,它无法正常工作,因为 ShaderUtils 尝试通过相对路径加载我的着色器。我怎样才能解决这个问题?我希望它像这样加载它:

image = ImageIO.read(Level.class.getClassLoader().getResourceAsStream("heightmap.bmp"));

我目前正在这样做:

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

我需要bufferedReader,但我怎样才能改变它,让它像图像文件一样加载?

4

4 回答 4

2

可以这样做:

new BufferedReader(
    new InputStreamReader(
        Level.class.getClassLoader().getResourceAsStream("your_resource")
    )
);
于 2013-11-12T11:08:39.453 回答
0
new BufferedReader(
    new InputStreamReader(
        Level.class.getClassLoader().getResourceAsStream("your_resource")
    )
);
于 2013-11-12T11:05:59.453 回答
0

摆脱 FileReader。资源不是文件。您的第一个示例显示了如何将资源作为流获取。包装一个 InputStreamReader 然后你的 BufferedReader 围绕它。

为什么您认为您希望 Reader 加载图像文件是另一个问题,而且没有任何意义。

于 2013-11-12T11:06:41.503 回答
0

也许你可以试试,因为 ImageIO.read() 也可以读取文件。

ImageIO.class

static BufferedImage read(File input) 
          Returns a BufferedImage as the result of decoding a supplied File with an ImageReader chosen automatically from among those currently registered.

所以创建一个文件 file = new File("path");

并传递给方法。

于 2013-11-12T11:18:50.573 回答