【问题标题】:reading a textfile from r.raw on android在 android 上从.raw 读取文本文件
【发布时间】:2011-08-05 08:20:21
【问题描述】:

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

我需要使用 GSON 来处理它。

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

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

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

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

谢谢,

丹尼斯

【问题讨论】:

    标签: android file filereader


    【解决方案1】:

    正如 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);获取字符串。

    【讨论】:

    • 非常感谢您回答这个问题,我原来的问题已经解决了。仍然为了我自己的学习,我最初的问题仍然悬而未决; FileReader 需要一个字符串作为文件名,但是如何将 R.raw.test123 转换为可以传递给 FileReader 的字符串。感谢您的帮助!
    【解决方案2】:

    如何做以下事情:

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

    【讨论】:

    • 我已经使用 InputStream 解决了,是的,但仍然很简单,比如将名称传递给 FileReader 是如何完成的? (谢谢btw Hooked82)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    • 2013-06-09
    • 2016-05-20
    • 1970-01-01
    • 2015-09-13
    • 2011-11-25
    • 1970-01-01
    相关资源
    最近更新 更多