我有一段用于流复制的代码。
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 规则?