Cita: ¿No se supone que InputStream sólo es capaz de leer un carácter, o mejor dicho, su equivalente en ASCII?
Por eso estás usando BufferedReader
https://docs.oracle.com/javase/7/doc...redReader.html Cita: Por qué tengo que almacenar lo que devuelva br.readLine() en una variable de tipo String (cadena)
No es obligatorio, sólo lo es si vas a hacer más de una operación con el texto, porque de un Stream sólo se puede leer una vez.
Cita: por qué al hacer System.out.println no muestra lo mismo si pasamos la variable cadena que si pasamos directamente el br.readLine()?
Muestra lo que le pases, creo que tù piensas que con br.readLine() lees dos veces una línea, pero en realidad cada vez que llamas a una readLine lees una nueva línea, recuerda, un byte de un Stream sólo se puede leer una vez. Si haces dos readLine, tienes que esxribir dos veces texto en consola
Cita: Lo que me tiene un poco loco es que, en system.out que pasamos la cadena, si pongo “Hola”, sólo devuelve el texto”cadena: ola”.
Con ese código imposible que pase lo que dices
Cita: Hola
cadena: Hola
hola
br directo: hola