如何在代号一中读取流的行
How to read lines of a stream in Codename One
在 Java 标准中,我可以逐行读取流,例如使用 BufferedReader class 的 readLine() 方法。在 com.codename1.io 包中 class 不存在。
如何在代号一中实现相同的目标?
我们当前的流代码不支持 readline,因为它不是读取流的最有效方式。我建议使用 Util.readToString
之类的方法,然后解析可能更有效的字符串。
但是,如果你想替换 readLine,你可以这样做(没有测试):
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();
}
在 Java 标准中,我可以逐行读取流,例如使用 BufferedReader class 的 readLine() 方法。在 com.codename1.io 包中 class 不存在。
如何在代号一中实现相同的目标?
我们当前的流代码不支持 readline,因为它不是读取流的最有效方式。我建议使用 Util.readToString
之类的方法,然后解析可能更有效的字符串。
但是,如果你想替换 readLine,你可以这样做(没有测试):
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();
}