我怎样才能打印每一行读者
问题描述:
所以我正在一个项目,我正在制作一个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。在亚马逊上查看评论,了解本书中的一长串错误。
好吧,它实际上读取多个字符,它目前读取直到EOF。我正在尝试阅读整行,但如上所述,作者声称不应使用readLine(),因为不同的操作系统具有不同的换行符。 – yasgur99
@ yasgur99它一次读取一个字符,直到EOF。与线无关。你的作者是错误的,需要阅读Javadoc。 – EJP
so readLine()是安全的吗? – yasgur99