У меня проблема, мне нужно быстро сравнить два входных потока.
Сегодня у меня есть такая функция:
private boolean isEqual(InputStream i1, InputStream i2) throws IOException {
try {
// do the compare
while (true) {
int fr = i1.read();
int tr = i2.read();
if (fr != tr)
return false;
if (fr == -1)
return true;
}
} finally {
if (i1 != null)
i1.close();
if (i2 != null)
i2.close();
}
}
Но это очень медленно. Я хочу использовать буферизованное чтение, но пока не нашел хорошего способа сделать это.
Некоторые дополнительные вещи, которые усложняют задачу:
- Я не хочу читать один из входных потоков в память (весь)
- Я не хочу использовать стороннюю библиотеку
Мне нужно практическое решение - код! :)