BufferedReader 中的 readLine()

BufferedReader中的readLine()方法,API解释如下:

  • Reads a line of text. A line is considered to be terminated by any one of a line feed ('\n'), a carriage return ('\r'), or a carriage return followed immediately by a linefeed.

大概翻译一下:

读取一行以换行符\n,回车符\r,或者\n\r结尾的文本。

换名话说,如果一行文本没有以换行符、回车符结尾,readLine()方法就读不到。

为什么会看到这个方法,是因为之前碰到过一个问题:

创建了socket后,发送数据,接收方什么也收不到。多次尝试之后发现,在发送的字符串后加了\n,接收方才收到。所以找出来readLine()的api看了一下。

之后又尝试了在最后加\r,果然如api中所说,readLine()可以读取。

再之后,不使用BufferedReader读取,改成InputStream的read(byte[])方法,不加\n\r同样可以收到。

上一篇:JAAS 是个什么梗


下一篇:android 22 启动带2个action值的预定义acticity