输入BufferedReader如何终止它

时间:2014-03-31 20:06:12

标签: 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")) {                  
               String result = sb.toString();
               result = result.replace("\r\n", "");
               return result;
        }
     }   
} 

我希望用户在控制台上写一些消息。而当他写作' \ r \ n'控制台应结束其输入。但这不起作用......你有什么提示可能是什么问题吗?

在aditional中,我不想使用in.close();因为我以后需要这个输入。

1 个答案:

答案 0 :(得分:0)

试试这个:

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();
}