Android - 如何从res文件夹中打开不同的文件?

时间:2013-03-22 05:48:16

标签: android file relative-path

好的,到目前为止,我发现的所有答案似乎都得到了那些不知道答案的人的回答...... 这应该是一个简单的(你可以自由代表):

我有一个res / raw /文件名为overworld_a.tmx

我需要使用路径作为字符串加载它,然后将文件名添加到字符串中,因为它会有所不同。

像这样:

    String mapName = "overworld_a.tmx";
    try {
        TMXMapReader mapReader = new TMXMapReader();
        map = mapReader.readMap("raw/"+mapName);
    } catch (Exception e) {
        System.out.println("Error while reading the map:\n" + e.getMessage());
        return;
    }

问题是,这显然不起作用....简单问题是,该文件的相对路径是什么?

如果不是这种可能性:

复杂的问题是,如何从res文件夹及其子文件中打开不同的文件?

1 个答案:

答案 0 :(得分:1)

您可以从overworld_a.tmx目录中阅读res/raw

1。使用openRawResource从原始文件夹中将overworld_a.tmx作为InputStream阅读:

String mapName = "overworld_a"; //<< just pass name without file extension 

resID = getResources().getIdentifier(mapName, "raw", getPackageName());
InputStream inputStream = getResources().openRawResource(resID);

2。ByteArrayOutputStream获取inputStream

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
//... your code for reading byteArray from inputStream

3。byteArrayOutputStream传递给mapReader.readMap

 TMXMapReader mapReader = new TMXMapReader();
 map = mapReader.readMap(byteArrayOutputStream);
//.....