Java 服务器使用什么代替BufferedReader

Java 服务器使用什么代替BufferedReader,java,serversocket,java-server,Java,Serversocket,Java Server,我被告知BufferedReader.readLine()不是从clientSocket读取数据的合适方法,因为它将一行视为以\n或\r结尾的字符串。但是,我的行的结束符号是\r\n。我应该使用什么来代替缓冲读取器 我被告知BufferedReader.readLine()不是从clientSocket读取数据的合适方法,因为它将行视为以\n或\r结尾的字符串 你被说错了。请参阅Javadoc 但是,行的结束符号是\r\n。我应该使用什么来代替缓冲读取器 您不需要任何东西来代替BufferedR

我被告知
BufferedReader.readLine()
不是从clientSocket读取数据的合适方法,因为它将一行视为以
\n
\r
结尾的字符串。但是,我的行的结束符号是
\r\n
。我应该使用什么来代替缓冲读取器

我被告知BufferedReader.readLine()不是从clientSocket读取数据的合适方法,因为它将行视为以
\n
\r
结尾的字符串

你被说错了。请参阅Javadoc

但是,行的结束符号是\r\n。我应该使用什么来代替缓冲读取器

您不需要任何东西来代替
BufferedReader
。它会将其识别为行终止符。请参阅Javadoc

。。。如果我得到一行内有
\r
\n


没有这样的事

BufferedReader很好。只要阅读javadoc就会知道::“一行被认为是由换行符('\n')、回车符('\r')中的任何一个终止的。”是的,但是如果我得到一行里面有
\r
\n
,BufferedReader将返回比我预期的短的行,对吗?如果你处理文本,
\r
\n
意味着一个新行。如果你不处理文本,你应该将数据视为字节,忘记“行”的概念,使用
InputStream
。好的,这可能是更好的选择。请回答这个问题,这样我就可以接受它的正确性,但我100%同意SJuan76。如果不处理文本,请不要使用BufferedReader。文本不包含“行”“中间有一个R或一个n。实际上,有这样的东西。我称之为行,但它是一条可以包含\r或\n的消息,我所知道的是它以\r\n结尾。只有当您亲自重新定义行的含义时,才会出现这种情况,就像您所做的那样。在现实世界中,包含线终止符的线的概念毫无意义。