2010-08-17 24 views

回答

24

只需使用:的

BufferedReader br = new BufferedReader(new InputStreamReader(is), 8192); 

代替:

BufferedReader br = new BufferedReader(new InputStreamReader(is)); 

注:

8192(8K)是字符缓冲区的大小。

+1

我使用了'BufferedReader reader = new BufferedReader(new InputStreamReader(is),8192);'但我仍然得到相同的消息 – sipdorus 2014-11-04 10:33:39

11

你没有做错任何事情。它只是告诉你,你选择了不带size参数的BufferedInputStream版本。如果使用另一个(BufferedInputStream(InputStream in, int size)),则可以指定您自己的缓冲区大小。

如果8KB碰巧正是您需要的,您可以选择忽略该警告,或者您可以使用构造函数调整大小以根据需要调整大小 - 尽可能小,尽可能大。

+3

这是正确的,但警告表明Android框架开发人员仍然倾向于提出明确的大小请求而不是依赖于默认值。从源代码中的评论中,“我们想阻止使用这个构造函数”。虽然,正如你所说,如果明确指定了8K缓冲区,那么在行为方面绝对没有区别(除了不记录任何警告)。 – 2010-08-17 01:44:56

+1

日志绝对是行为上的差异,并导致临时字符串被创建等。只是总是使用具有明确大小的构造函数。这是理想的行为。 – hackbod 2010-08-17 07:26:29

+0

那么框架开发者是否会推荐另一个尺寸,或者确定您的需求? – 2010-12-09 11:12:39