我有一个库,ShaderUtils,我在游戏中使用它。现在,当我使用此库导出我的游戏时,它无法正常工作,因为ShaderUtils尝试通过相对路径加载我的着色器。我怎样才能解决这个问题?我希望它像这样加载它:
image = ImageIO.read(Level.class.getClassLoader().getResourceAsStream("heightmap.bmp"));
我目前正在这样做:
BufferedReader reader = new BufferedReader(new FileReader(fragmentLoc));
我需要bufferedReader,但是如何更改它以便像图像文件一样加载?
答案 0 :(得分:2)
可以这样做:
new BufferedReader(
new InputStreamReader(
Level.class.getClassLoader().getResourceAsStream("your_resource")
)
);
答案 1 :(得分:0)
new BufferedReader(
new InputStreamReader(
Level.class.getClassLoader().getResourceAsStream("your_resource")
)
);
答案 2 :(得分:0)
摆脱FileReader。资源不是文件。您的第一个示例显示了如何将资源作为流获取。包装一个InputStreamReader,然后包围你的BufferedReader。
为什么你认为你想要一个Reader来加载一个图像文件是另一个问题,而不是一个有意义的问题。
答案 3 :(得分:0)
也许你可以尝试一下,因为ImageIO.read()也可以读取文件。
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 file = new File(" path");
并传递给方法。