我讀入文件:Android Inputread流完全讀取給定的緩衝區大小?
char [] buffer = new char[300];
FileInputStream istream = new FileInputStream(path);
InputStreamReader file = new InputStreamReader(istream);
size = file.read(buffer);
file.close();
試了幾次後,事實證明,在file.read(buffer)
讀取分配給緩衝字符數完全(在這種情況下,300,即使該文件還有更多在其中)。
我可以依靠的read()總是儘量多地閱讀就可以了,而不會產生任何異常?
或者這是一個未公開的特性?
的讀取方法的描述說:
讀取字符 陣列中來自該閱讀器的字符,並將它們存儲的buf開始偏移量爲0。返回字符 的數量實際上讀取或-1,如果端的讀者已經達到。
有緩衝的分配問題沒有提及。 這是非常重要的,一個好的東西,是這樣工作的,因爲它允許您定義緩衝區的大小,只要你想/需要,並沒有必要去猜測,沒有必要爲例外的代碼。其實,這是read(char[] buffer)
,但它可以作爲read(char[] buffer, int size)
。
這是不是我問。但是你是正確的,當你想閱讀整個文件時你應該這樣做。 – ilomambo 2013-02-24 17:47:10
編輯我的答案 – Houf 2013-02-25 17:41:43
沒有冒犯的意圖,但你可以解釋一點點什麼是您的斷言的基礎上,我們可以依靠讀我描述()的行爲嗎? – ilomambo 2013-02-25 20:00:33