¿Cuál es la mejor manera de verificar si un Reader está vacío?

Necesito detectar si a Readerestá vacío (no generará datos), antes de pasar el lector a alguna función externa.

Lo mejor que se me ocurre es envolver mi Readeren una BufferedReaderque garantice proporcionar mark/ resetfuncionalidad, y luego intentar leer un solo carácter antes de restablecer la transmisión a su posición original.

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;
}

¿Hay una mejor manera?

Respuesta 1

Estoy tratando de usar un grupo de subprocesos fijos en Java 8 que funciona perfecto siempre que permanezca dentro de la misma función. Una vez que trato de compartir el ejecutor como parámetro, nunca se ejecuta en paralelo. Esto funciona ...

Tengo un Edittext, donde quiero permitir solo números y números decimales (máximo 2 decimales después del separador, por ejemplo, 125.50). Implementé un filtro para esto: final EditText field1 = (EditText) ...

¿Hay alguna manera en Intellij para crear un punto de interrupción condicional cuando una clase específica está presente en el stacktrace? Alternativamente, cuando se pasó un punto de interrupción específico en este stacktrace. Ejemplo dado: Let '...

Tengo una entidad llamada MyData. Y estoy tratando de agregar los valores de la entidad MyData a la base de datos. Como a continuación: for (MyDataParent myDataParent: myDataParentList) {MyData myData = new Mydata (); mis datos....