Я вызываю метод из внешней библиотеки с (упрощенной) подписью, например так:
public class Alien
{
// ...
public void munge(Reader in, Writer out) { ... }
}
Метод в основном читает строку из одного потока и записывает свои результаты в другой. У меня есть несколько строк, которые мне нужно обработать этим методом, но ни одна из них не существует в файловой системе. Струны могут быть довольно длинными (около 300 КБ каждая). В идеале я хотел бы вызвать munge () в качестве фильтра:
public void myMethod (ArrayList<String> strings)
{
for (String s : strings) {
String result = alienObj.mungeString(s);
// do something with result
}
}
К сожалению, класс Alien не предоставляет метод mungeString () и не предназначен для наследования. Есть ли способ избежать создания двух временных файлов каждый раз, когда мне нужно обработать список строк? Например, передать мой ввод в поток Reader и прочитать его обратно из потока Writer, не затрагивая файловую систему?
Я новичок в Java, пожалуйста, прости меня, если ответ очевиден для профессионалов.