Java 输入BufferedReader如何终止它
我有这段代码Java 输入BufferedReader如何终止它,java,io,Java,Io,我有这段代码 private String getMessage(BufferedReader in) throws IOException{ StringBuilder sb = new StringBuilder(); while(true){ char pom = (char) in.read(); sb.append(pom); if (sb.toString().contains("\r\n")) {
private String getMessage(BufferedReader in) throws IOException{
StringBuilder sb = new StringBuilder();
while(true){
char pom = (char) in.read();
sb.append(pom);
if (sb.toString().contains("\r\n")) {
String result = sb.toString();
result = result.replace("\r\n", "");
return result;
}
}
}
我希望用户在控制台上写一些消息。当他写入“\r\n”时,控制台应结束其输入。但这不起作用。。。你没有一些建议吗?有什么问题吗
在传统用法中,我不想在中使用.close();因为我以后需要这个输入。试试这个:
private String getMessage(BufferedReader in) throws IOException{
return in.readLine();
}
好的,如果你想一个字节一个字节地做,那么你可以试试这个:
private String getMessage(BufferedReader in) throws IOException{
StringBuilder sb = new StringBuilder();
char prev = (char) 0;
char cur = in.read();
while (prev != '\r' || cur != '\n') {
sb.append(cur);
prev = cur;
cur = in.read();
}
return sb.toString();
}
你有没有调试过这个程序,看看它失败的地方?“这不起作用”是什么意思?嗯,我写了,它什么也没做。“qdio\r\ndosvp…”并且可以继续写入。可能有兴趣。是的,这将是一个很好的解决方案,但由于某些原因,我需要逐字节读取信息…@user3472536,要逐字节读取信息,您需要一个
InputStream
<代码>读取器s读取字符,而不是字节。与我的代码相同。这是我在控制台上写的东西,可以继续写下去。