2010-08-17 73 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