साल मैं इस तरह एक पाश में InputStreams से पढ़ कर दिया गया है के लिए:अधिक सुरुचिपूर्ण इनपुट स्ट्रीम लूप पढ़ा?
final byte[] buffer = new byte[65536];
InputStream is = ...;
int r;
while ((r = is.read(buffer)) > 0) {
...
}
लेकिन मुझे आश्चर्य है अगर वहाँ एक रास्ता (दूसरी शर्त को शुरू करने के बिना) पाश में है कि काम से बचने के लिए है - जैसे इस कोड को मैं भी कम सुरुचिपूर्ण पर विचार के रूप में वहाँ दो पढ़ा बयान और दो शर्तें हैं: एक और अधिक सुरुचिपूर्ण के लिए
r = is.read(buffer);
if (r > 0) {
do {
...
r = is.read(buffer);
} while (r > 0);
}
कोई भी विचार (कॉम्पैक्ट, सशर्त में कार्य के बिना) का निर्माण?
तुलना (आर> 0) की बजाय तुलना नहीं होना चाहिए (आर> 0)? धारा का अंत -1 से संकेत मिलता है। – Leonel