Dalvik消息 - BufferedInputStream构造函数中使用的默认缓冲区大小.如果需要8k缓冲区,最好是明确的

Aru*_*Das 15 android

当我使用BufferedInputStream并指定缓冲区大小时,Dalvik给出了这个警告 - BufferedInputStream构造函数中使用的默认缓冲区大小.如果需要8k缓冲区,最好是明确的.

但是现在,我的缓冲区大小已经达到了8k.我究竟做错了什么?

Ben*_*uer 24

只需使用:

BufferedReader br = new BufferedReader(new InputStreamReader(is), 8192);
Run Code Online (Sandbox Code Playgroud)

代替:

BufferedReader br = new BufferedReader(new InputStreamReader(is));
Run Code Online (Sandbox Code Playgroud)

注意:

8192(8k)是缓冲区的大小.


Ebo*_*ike 11

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

如果8KB恰好是您需要的,您可以选择忽略警告,或者您可以使用构造函数调整大小以根据您的需要进行调整 - 尽可能小,尽可能大.

  • 这是正确的,但警告表明Android框架开发人员仍然希望制作明确的大小请求而不是依赖于默认值.根据来源中的评论,"我们希望阻止使用此构造函数".但是,正如您所说,如果明确指定了8K缓冲区,则行为绝对没有区别(除了没有记录警告). (3认同)