好的,到目前为止,我发现的所有答案似乎都得到了那些不知道答案的人的回答...... 这应该是一个简单的(你可以自由代表):
我有一个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文件夹及其子文件中打开不同的文件?
答案 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);
//.....