Stream 如何在Codename One中读取流的行

Stream 如何在Codename One中读取流的行,stream,codenameone,bufferedreader,Stream,Codenameone,Bufferedreader,在Java标准中,我可以使用BufferedReader类的readLine()方法逐行读取流。在com.codename1.io包中,该类不存在 如何在Codename One中实现相同的目标?当前的流代码中不支持readline,因为它不是读取流的最有效方式。我建议使用一种方法,比如Util.readToString,然后解析字符串,这可能会更有效 但是,如果要替换readLine,可以执行以下操作(未测试): 谢谢你,谢。你能解释一下如何使用Util.readToString?为什么效率更

在Java标准中,我可以使用BufferedReader类的readLine()方法逐行读取流。在com.codename1.io包中,该类不存在


如何在Codename One中实现相同的目标?

当前的流代码中不支持readline,因为它不是读取流的最有效方式。我建议使用一种方法,比如
Util.readToString
,然后解析字符串,这可能会更有效

但是,如果要替换readLine,可以执行以下操作(未测试):


谢谢你,谢。你能解释一下如何使用
Util.readToString
?为什么效率更高?它将输入作为单个块进行缓冲。只要调用该方法,就可以将整个文件作为字符串获取,然后可以使用
for(字符串行:StringUtil.tokenize(Util.readString(stream),'\n'){…}
private String readLine(Reader is) throws IOException {
   int nextChar = is.read();
   if(nextChar == -1) {
       return null;
   }
   StringBuilder ret = new StringBuilder();
   while(nextChar > -1) {
       ret.append((char)nextChar);
       nextChar = is.read();
       if(nextChar == '\n') {
          return ret.toString();
       }
   }
   return ret.toString();
}