Мне нужно определить, является ли Reader
пустым (не даст никаких данных), прежде чем передать читателю какую-либо внешнюю функцию.
Лучшее, что я могу придумать, - это обернуть Reader
в BufferedReader
, который гарантирует предоставление функциональности mark
/ reset
, а затем пытается прочитать один символ перед сбросом потока в исходное положение.
BufferedReader buffered = new BufferedReader(myReader);
if (!isEmpty(buffered)) {
someOtherFunction(buffered);
}
private boolean isEmpty(BufferedReader reader) throws IOException {
reader.mark(1);
int c = reader.read();
reader.reset();
return c < 0;
}
Есть ли лучший способ