【问题标题】:BufferedReader not reading file (Android)BufferedReader 不读取文件(Android)
【发布时间】:2012-02-05 00:24:40
【问题描述】:

我在使用 bufferedReader 读取文件时遇到问题...我正在尝试读取每个单词都在换行符上的字典文件。它适用于我拥有的一个文件,但是当我尝试添加一个更大的 wordlist 文件时启用 wordlist,然后在第一次读取时:'while ((currentLine=br.readLine()) != null) '它会导致异常,没有描述...请帮忙!

try
    {
        InputStream is = this.getResources().openRawResource(R.raw.enable1);
        BufferedReader br = new BufferedReader(new InputStreamReader(is));

        String currentLine=null;

        while ((currentLine=br.readLine()) != null) 
        {
            dictionaryList.add(currentLine);       
        }
        br.close();                 
    }
    catch (Exception e)
    {
        //error here
    }

*看起来文件大小限制为 1048576 字节......否则它会崩溃。

【问题讨论】:

  • 异常被您拥有的 catch 块停止。您只是没有在 catch 块内打印任何内容。尝试添加e.printStackTrace()
  • 谢谢,但我发现了超过 1048576 字节的新词表的问题,所以它导致了 io 异常...我将按字长将词表拆分为文件...应该让它更快地加载我正在做的事情!

标签: java android file-io dictionary bufferedreader


【解决方案1】:

所以我喜欢我在编辑中说的新词表超过 1048576 字节并且导致 IO 异常没有任何错误...(我在 catch 中将字符串设置为 e.Message() 将消息为空)

我所做的是根据字的大小将单词列表分成单独的文件(顺便说一句,有 26 个不同的文件!如果需要,请给我留言)

然后根据我拥有的单词的大小,我加载所有文件格式为 enable# 的特定单词列表(# 是单词大小)。如果有人想知道我正在这样做:

int wordListID=0;    
String wordList="enable"+goodText.length();

try {
Class res = R.raw.class;
        Field field = res.getField(wordList);
        wordListID= field.getInt(null);
    }
    catch (Exception e) {
        //something
    }

然后我将那个特定的 wordListID 发送到:

InputStream is = this.getResources().openRawResource(wordListID);

并且知道我有一个足够小的文件,这实际上也有助于我的表现!

*这是我的第一个应用程序,所以我可能没有以正确的方式做事......只是试图掌握事情的窍门

【讨论】:

    猜你喜欢
    • 2021-12-21
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    • 2013-04-12
    • 2017-03-20
    • 2017-11-18
    • 2019-01-01
    • 2015-10-01
    相关资源
    最近更新 更多