Diferencia entre el final del archivo y un valor de byte de -1 en Java?

ABC123:

En java, bytes son firmados (-128 a 127), esto significa un flujo de entrada puede leer un -1 sin llegar al final del archivo.

Entonces, ¿cómo sería un programador saber si el -1 devuelto por un flujo de entrada indica el final del fichero o un valor de byte real de -1?

rgettman:

Cuando se lee desde una InputStream, el readmétodo no devuelve una byte; devuelve una int.

El byte de valor se devuelve como inten el rango 0de 255. Si no hay byte está disponible debido a que el final de la secuencia se ha alcanzado, el valor -1se devuelve.

A pesar de que se firman bytes en Java, que no importa aquí, porque el byte que se lee se convierte en una intque puede almacenar valores superiores a 127. También significa que -1para llegar a la final de la secuencia no se confunden con una valor de 255 que se lee de la corriente.

Una vez que tenga el valor, siempre se puede emitir el inta una bytepara conseguir un byte en el rango de -128 a 127, lo que convertiría a los 255 en -1.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=226963&siteId=1
Recomendado
Clasificación