Вы правы, что javadocs очень похожи.В случае сомнений всегда опускайтесь до источника.Большинство IDE облегчают присоединение источника OpenJDK и позволяют перейти к ним.
Это readNBytes
из InputStream.java :
public int readNBytes(byte[] b, int off, int len) throws IOException {
Objects.requireNonNull(b);
if (off < 0 || len < 0 || len > b.length - off)
throw new IndexOutOfBoundsException();
int n = 0;
while (n < len) {
int count = read(b, off + n, len - n);
if (count < 0)
break;
n += count;
}
return n;
}
AsВы можете видеть, что на самом деле он выполняет вызов read(byte[],int,int)
.Разница в этом случае заключается в том, что если фактические прочитанные байты меньше указанных вами len
, , он будет пытаться снова прочитать () , пока не будет подтверждено, что на самом деле ничего не осталось для чтения.
Редактировать: Обратите внимание, что
- Это реализация OpenJDK базы
InputStream
.Другие могут отличаться. - Подклассы
InputStream
также могут иметь собственную переопределенную реализацию.Обратитесь к документу / источнику для соответствующего класса.