从android上的r.raw读取文本文件

时间:2011-08-05 08:20:21

标签: android file filereader

我在R.raw.test123中有一个json文件,

我需要用GSON处理它。

第一步是;将文本读成字符串,我想用;

BufferedReader r = new BufferedReader(new FileReader(file));

FileReader需要一个字符串作为文件名,但是如何将R.raw.test123变成一个我可以传递给FileReader的字符串。

我已经用Google搜索了大约4个小时,仍然无法找到它。而且我知道这可能是一个菜鸟问题,但我是droid编程的新手,我来自.net背景,所以这对我来说都很新......

谢谢,

丹尼斯

2 个答案:

答案 0 :(得分:3)

hooked82 所述,您可以使用inputstream获取:

InputStream stream = getResources().openRawResource(R.raw.test123);

然后使用方法将其转换为字符串:

private static String convertStreamToString(InputStream is) {

    BufferedReader reader = new BufferedReader(new InputStreamReader(is));
    StringBuilder sb = new StringBuilder();

    String line = null;
    try {
        while ((line = reader.readLine()) != null) {
            sb.append((line + "\n"));
        }
    } catch (IOException e) {
        Log.w("LOG", e.getMessage());
    } finally {
        try {
            is.close();
        } catch (IOException e) {
            Log.w("LOG", e.getMessage());
        }
    }
    return sb.toString();
}

因此,您可以使用convertStreamToString(stream);获取字符串。

答案 1 :(得分:2)

如何做到以下几点:

InputStream stream = getResources().openRawResource(R.raw.test123);