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
),returns 字符数阅读。
while子句while((charRead = isr.read(inputBuffer)) > 0)
的作用和上面解释的完全一样,读取到的字符的值存储后,检查是否大于0……如果是,这意味着我们已经从中读取了一些东西流,我们进入循环。
String.copyValueOf(inputBuffer, 0, charRead);
用于将缓冲区的内容复制到字符串对象中 - readString
。之后,最后一个字符串对象附加到 XMLContents
对象。最后,创建一个新的缓冲区数组对象并分配给inputBuffer
,并重复该过程。
当不再读取字符时,sir.read(inputBuffer)
returns 0
并且charRead
的值为0
(不大于0
). while
循环结束,返回 XMLContents
对象。
我不太明白这段代码的作用。我主要想知道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
),returns 字符数阅读。
while子句while((charRead = isr.read(inputBuffer)) > 0)
的作用和上面解释的完全一样,读取到的字符的值存储后,检查是否大于0……如果是,这意味着我们已经从中读取了一些东西流,我们进入循环。
String.copyValueOf(inputBuffer, 0, charRead);
用于将缓冲区的内容复制到字符串对象中 - readString
。之后,最后一个字符串对象附加到 XMLContents
对象。最后,创建一个新的缓冲区数组对象并分配给inputBuffer
,并重复该过程。
当不再读取字符时,sir.read(inputBuffer)
returns 0
并且charRead
的值为0
(不大于0
). while
循环结束,返回 XMLContents
对象。