當我使用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