Я хочу написать InputStream, который получает свой вход от другого InputStream и что-то делает с ним. Я узнал, что FilterInputStream обеспечивает именно то, что я искал.Java - Написание фильтраInputStream
Итак, что лучше всего при написании моего фильтра FilterInputStream? Стандартная реализация просто передает все запросы на чтение в исходный InputStream. Так что я бы что-то вроде этого:
public class MyFilterInputStream extends FilterInputStream {
public MyFilterInputStream(InputStream inputStream) {
super(inputStream);
}
public int read() {
int i = in.read();
int j = doSomething(i);
return j;
}
...
}
было бы лучше использовать многопоточный подход, при котором, например, поток постоянно считывает из в и сохраняет данные в буфер, а затем доступ к которому MyFilterInputStream. читать()? (Особенно, когда объем данных, который производится отличается от суммы, которая потребляется)
Обновление:
Конкретное применение будет сырой аудио поток в качестве входных данных и (так или иначе) сжатого аудио потока в качестве выхода.
Что именно вы хотите сделать? –
Обновлен вопрос – moe1