У меня проблема, мне нужно быстро сравнить два входных потока.
Сегодня у меня есть такая функция:
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();
}
}
Но это очень медленно. Я хочу использовать буферизованные чтения, но не придумал хороший способ сделать это.
Некоторые дополнительные вещи, которые делают его сложнее:
- Я не хочу читать один из входных потоков в памяти (весь)
- Я не хочу использовать стороннюю библиотеку
Мне нужно практическое решение - код!:)