Ver Mensaje Individual
  #10 (permalink)  
Antiguo 29/01/2010, 15:43
GreenEyed
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: DataInputStream + BufferedReader ¿Cómo?

Sólo digo que si lo guardas con DataOutputStream a base de Strings, que no implican lineas, lo normal es leerlo con DataInputStream, sin leerlo linea a linea.
Si lo quieres recuperar linea a linea, entonces es mejor escribirlo linea a linea.

Y lo que te estçan recomendando es que si tienes un fichero con textos separados por lineas, lo leas con BufferedReader/InputStreamReader por que esa es la forma más adecuada y que respeta el encoding. Pero si lo has escrito con DataOutputStream, no es un fichero de texto linea a linea, así que la recomendación no es válida.

En la documentación, en el consejo te lo dice:
Cita:
As of JDK 1.1, the preferred way to read lines of text is via the BufferedReader.readLine() method
Y tu no estás leyendo lineas de texto, estás leyendo Strings puros y duros. En el caso de querer leer Strings, el método es readUTF(), el cual sí que es poco intuitivo... pero no querían llamarlo readString() básicamente por que quieren dejar claro que sólo pueden asegurar que funciona si lo has escrito con un writeUTF().

Así que con String es writeUTF()/readUTF(). En realidad writeBytes(String) no es para escribir Strings y luego recuperarlas ya que descarta información y escribe los bytes uno a uno. Francamente, no se que uso tendrá pero será para algún caso raro. Poco intuitivos los nombres, sí.

El aviso simplemente es para que la gente no se confunda e intente leer un fichero de texto con un DataInputStream, ya que no es para eso. Pero si lo has escrito con un DataOutputStream, no es realmente un fichero de texto.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.