Я не понимаю этой критики моего кода для сравнения байтового содержимого файлов. ДжаваJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Я не понимаю этой критики моего кода для сравнения байтового содержимого файлов. Джава

Сообщение Anonymous »

На днях я попросил просмотреть приведенный ниже код. Это код, над которым я работаю, для сравнения байтового содержимого файлов, предположительно идентичных; он должен работать с файлами любого типа и любого размера. На этой фотографии показана часть критики одного человека. Мне нужна помощь в понимании этой конкретной критики, поскольку я ее вообще не понимаю, честно говоря, я не могу разобраться в ней: во-первых, я даже не могу сказать, озаглавлена ​​ли часть с отступом как Предполагается, что цифра 3 ведет к остальной части — почему остальная часть не имеет такого же отступа, если так? они, кажется, думают, что использовать read(byte[]) неправильно, но я просто не могу понять их доводы в пользу этого; Я не знаю, почему они говорят о read(byte[]), возвращающем значение, хотя я думал, что этот метод просто передает байты из BufferedInputStream в byte[] —В противном случае я бы вообще не подумал, что он что-то вернет—; и я не знаю, откуда они берут переменные int len1 и int len2, я вообще не понимаю, как они связаны с рассматриваемым кодом.
Чтобы внести ясность: я не прошу провести обзор данного кода, он еще к этому не готов. Я просто прошу объяснить критику этого человека, чтобы я мог понять, что, по его мнению, в нем не так.
Я еще не решил, что буду делать. использовать для условия прерывания цикла While; Для этого я могу рассмотреть несколько различных альтернатив. Я не прошу помощи в этом вопросе — я просто указываю на это для ясности.
Я также знаю, что существуют существующие методы сравнения байтовое содержимое файлов, с этим мне не нужна помощь.
bin_1 = new BufferedInputStream(file_input_stream_1);
bin_2 = new BufferedInputStream(file_input_stream_2);

byte[] barr_1 = new byte[8192];
byte[] barr_2 = new byte[8192];

while(/*enter break-condition of your choice*/){

bin_1.read(barr_1); bin_2.read(barr_2);

if(Arrays.equals(barr_1, barr_2) == false){
break;
}

else{
/*Byte-Arrays are Re-Assigned to ensure that no bytes from the previous loop
carry-over.*/
barr_1 = new byte[8192];
barr_2 = new byte[8192];
continue;

}

}


Подробнее здесь: https://stackoverflow.com/questions/783 ... ntent-of-f
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»