簡體   English   中英

inputstreamreader.read和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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM