我有一段代碼讀取InputStream
和寫的內容爲OutputStream
:更好的Java循環?
BufferedInputStream in = new BufferedInputStream(...);
FileOutputStream outStream = new FileOutputStream outStream(...);
int read = in.read(buffer, 0, bufferSize);
while (read != -1) {
outStream.write(buffer, 0, read);
read = in.read(buffer, 0, bufferSize);
}
它的工作原理,但我不喜歡它,因爲變量read
聲明退出循環,並read()
方法被寫兩次。 修訂版:
for (int read = 0; read != -1; read = in.read(buffer, 0, bufferSize)) {
outStream.write(buffer, 0, read);
}
它看起來更好,但還不夠好,因爲第一次迭代是無用的(也許是有害的)與讀= 0。
你有更好的解決方案嗎?
IMHO第一版本比所述第二版本更具有可讀性。 – 2011-05-20 11:49:45
或者你可以使用commons-io並用'IOUtils.copy(in,outStream)替換整個東西;' – stevevls 2011-05-20 11:53:00