当我使用BufferedInputStream并指定缓冲区大小时,Dalvik给了我这个警告 - BufferedInputStream构造函数中使用的默认缓冲区大小。如果需要8k缓冲区,那么最好是明确的。Dalvik消息 - BufferedInputStream构造函数中使用的默认缓冲区大小。如果需要8k缓冲区,最好是明确的
但现在,我的缓冲区大小已经在8K。我究竟做错了什么?
当我使用BufferedInputStream并指定缓冲区大小时,Dalvik给了我这个警告 - BufferedInputStream构造函数中使用的默认缓冲区大小。如果需要8k缓冲区,那么最好是明确的。Dalvik消息 - BufferedInputStream构造函数中使用的默认缓冲区大小。如果需要8k缓冲区,最好是明确的
但现在,我的缓冲区大小已经在8K。我究竟做错了什么?
只需使用:的
BufferedReader br = new BufferedReader(new InputStreamReader(is), 8192);
代替:
BufferedReader br = new BufferedReader(new InputStreamReader(is));
注:
8192(8K)是字符缓冲区的大小。
你没有做错任何事情。它只是告诉你,你选择了不带size参数的BufferedInputStream版本。如果使用另一个(BufferedInputStream(InputStream in, int size)
),则可以指定您自己的缓冲区大小。
如果8KB碰巧正是您需要的,您可以选择忽略该警告,或者您可以使用构造函数调整大小以根据需要调整大小 - 尽可能小,尽可能大。
这是正确的,但警告表明Android框架开发人员仍然倾向于提出明确的大小请求而不是依赖于默认值。从源代码中的评论中,“我们想阻止使用这个构造函数”。虽然,正如你所说,如果明确指定了8K缓冲区,那么在行为方面绝对没有区别(除了不记录任何警告)。 – 2010-08-17 01:44:56
日志绝对是行为上的差异,并导致临时字符串被创建等。只是总是使用具有明确大小的构造函数。这是理想的行为。 – hackbod 2010-08-17 07:26:29
那么框架开发者是否会推荐另一个尺寸,或者确定您的需求? – 2010-12-09 11:12:39
我使用了'BufferedReader reader = new BufferedReader(new InputStreamReader(is),8192);'但我仍然得到相同的消息 – sipdorus 2014-11-04 10:33:39