我怎样才能打印每一行读者

问题描述:

所以我正在一个项目,我正在制作一个SMTP服务器。我正在尝试读取每行输入,然后将该行传递给另一个线程进行处理。但是,使用此代码,直到连接结束才会发送这些行。我认为这是一个事实,即新线不破while循环做:我怎样才能打印每一行读者

while (true) { 
     StringBuilder line = new StringBuilder(); 
     try { 
      int c; 
      while ((c = in.read()) != -1){ //this reads the line 
       line.append((char) c); //add the character to our line 
      } 
      String response = Parser.parse(line.toString); //give the line we just read to the parser for processing 
     } catch (IOException ex) { 
      System.err.println("IOException while reading the clients mesasge"); 
     } 
} 

,我也要去埃利奥特哈罗德引用的“Java网络编程第4版”,因为作者说,我们不应该使用BufferedReader或DataInputStream的readLine()方法,因为不同的操作系统有不同的换行符(\ n或\ r \ n或别的东西)

另外,我没有使用这些流所以即使我想使用readLine()我也无法做到。

任何人有任何想法,我怎么能做到什么,我试图做

while ((c = in.read()) != -1){ //this reads the line 

不,它不需要。它读取一个字符。使用BufferedReader.readLine()

,我也要去埃利奥特哈罗德引用的“Java网络编程第4版”,因为作者说,因为不同的操作系统有不同的换行,我们不应该用一个BufferedReader的ReadLine()方法或一个DataInputStream delimeters(\ n或\ r \ n或其他)。

Elliot Rusty Harold需要阅读Javadoc,你也一样。这是A级BS。在亚马逊上查看评论,了解本书中的一长串错误。

+0

好吧,它实际上读取多个字符,它目前读取直到EOF。我正在尝试阅读整行,但如上所述,作者声称不应使用readLine(),因为不同的操作系统具有不同的换行符。 – yasgur99

+0

@ yasgur99它一次读取一个字符,直到EOF。与线无关。你的作者是错误的,需要阅读Javadoc。 – EJP

+0

so readLine()是安全的吗? – yasgur99