Я бы написал класс InputStreamFilterer, который взял исходный InputStream в конструкторе.
Предложите два метода для getOriginalStream и getFilteredStream и оберните отфильтрованный поток прокси / делегатом, который перехватывает прочитанные байты, чтобы извлечь данные, которые вы хотите отфильтровать.
Этот подход предполагает, что вы хотите фильтровать поток по мере его чтения, и наивен в том, как вы хотите использовать данные. Также следите за кодировкой символов.