我有一段代碼用於流拷貝。在java中的PMD兼容流拷貝
OutputStream os = ...;
InputStream is = ...;
int bufferLength;
byte[] buffer = new byte[1024];
while ((bufferLength = is.read(buffer)) != -1) {
os.write(buffer, 0, bufferLength);
}
如果我通過它運行PMD,我會得到以下警告http://pmd.sourceforge.net/rules/controversial.html#AssignmentInOperand。
現在我想擺脫的警告,但我能想到的唯一的選擇是一樣的東西
OutputStream os = ...;
InputStream is = ...;
int bufferLength;
byte[] buffer = new byte[1024];
bufferLength = is.read(buffer);
while (bufferLength != -1) {
os.write(buffer, 0, bufferLength);
bufferLength = is.read(buffer);
}
而且我真的不喜歡,因爲我結束了重複的代碼。 有沒有更好的方法來滿足這個PMD規則?
您可以通過使用Commons IO避免重複代碼:-) – Thilo