![](/img/trans.png)
[英]are strings different after toCharArray and then used by String.copyValueOf
[英]inputstreamreader.read and string.copyvalueof
我不太了解這段代碼的作用。 我主要想知道isr.read(inputBuffer)
進程是什么, while
循環是做什么的。 有人可以幫我解釋一下嗎? 謝謝。
InputStreamReader isr = new InputStreamReader(is);
int charRead;
char[] inputBuffer = new char[BUFFER_SIZE];
try {
while((charRead = isr.read(inputBuffer)) > 0) {
String readString = String.copyValueOf(inputBuffer, 0, charRead);
XMLContents += readString;
inputBuffer = new char[BUFFER_SIZE];
}
return XMLContents;
} catch(IOException e) {
e.printStackTrace();
return null;
}
基本上, isr.read(inputBuffer)
從inputstreamreader
讀取,將字符存儲到給定的固定大小的緩沖區( inputBuffer
),然后返回讀取的字符數。
while子句while((charRead = isr.read(inputBuffer)) > 0)
完全按照上面的說明進行操作,並且在存儲讀取的字符的值之后,它會檢查它是否大於0。如果是,則意味着我們已經從流中讀取了一些內容,然后進入循環。
String.copyValueOf(inputBuffer, 0, charRead);
用於將緩沖區的內容復制到字符串對象readString
。 之后,將最后一個字符串對象附加到XMLContents
對象。 最后,將創建一個新的緩沖區數組對象並將其分配給inputBuffer
,然后重復該過程。
當不再讀取任何字符時, sir.read(inputBuffer)
返回0
並且charRead
值為0
(不大於0
)。 while
循環完成,並且返回XMLContents
對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.