FileReader相对路径

时间:2013-11-12 11:03:43

标签: java io path relative

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

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

我目前正在这样做:

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

我需要bufferedReader,但是如何更改它以便像图像文件一样加载?

4 个答案:

答案 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()也可以读取文件。

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 file = new File(" path");

并传递给方法。