FileReader rd=new FileReader("new.mp4");
FileWriter wr=new FileWriter("output.mp4");
int ch;
while((ch=rd.read())!=-1)
  wr.write(ch);

wr.flush();
wr.close();

Cuando uso el FileReader y FileWriter a leer y escribir un archivo mp4, el output.mp4 archivo no puede ser representado así. Pero cuando uso FileInputStream y FileOutputStream lugar funcionó bien.

Así que puedo concluir FileReader y FileWriter son sólo para la lectura y la escritura de un texto?

InformationsquelleAutor saravanan | 2011-03-01

5 Comentarios

  1. 51

    Sí, tu conclusión es correcta subclases de Reader y Writer son para la lectura/escritura de contenido de texto. InputStream /OutputStream son de contenido binario. Si usted echa un vistazo a la documentación:

    Reader – Clase abstracta para la lectura de caracteres corrientes

    InputStream – Clase abstracta es la superclase de todas las clases que representan un flujo de entrada de bytes.

    • así que sólo puede leer .archivo txt ..porque el pdf,word archivo también contiene archivos de imagen ..¿no
    • sí, sólo los archivos de texto. pdf y doc son complicadas formatos que necesitan las bibliotecas especiales con el fin de ser debidamente analizado.
    • puedo encontrar estas bibliotecas para el uso en mi pgm y lo hizo java creadores tomar el material para crear el personaje flujos de sólo lectura .archivos txt
    • depende de sus requisitos exactos. Usted puede hacer otra pregunta exactamente lo que desea obtener de un PDF y/o Doc. Pero primero buscar alrededor – ya hay preguntas relacionadas con
    • he editado mi anterior comentario ..puede que la respuesta para la segunda pregunta
    • esta es una cuestión diferente.

  2. 31

    FileReader (y de hecho nada extender el Lector) es, de hecho, para texto. Desde el documentación de Reader:

    Clase abstracta para la lectura de carácter flujos de.

    (El énfasis es mío.) Vistazo a la API y verás todo con el fin de hacer con el texto – char en lugar de byte por todo el lugar.

    InputStream y OutputStream son para los datos binarios, tales como archivos mp4.

    Personalmente me gustaría evitar FileReader por completo, aunque, como siempre se utiliza el sistema de codificación de caracteres por defecto. En su lugar, utilice InputStreamReader alrededor de un FileInputStream… pero sólo cuando quiere lidiar con el texto.

    Como un aparte, que es una manera muy ineficiente de la copia de una entrada a una salida… el uso de las sobrecargas de read y write que leer o escribir a partir de un tampón de un byte[] o un char[]. De lo contrario, usted está llamando a leer y escribir para cada uno de los bytes de caracteres en el archivo.

    Debe también cerca de IO corrientes en finally bloques, de modo que están cerrados, incluso si se produce una excepción al procesar ellos.

  3. 6

    FileInputStream se utiliza para la lectura de secuencias de bytes de datos sin formato, como las imágenes raw. FileReaders, por otro lado, se utilizan para la lectura de secuencias de caracteres

    La diferencia entre FileInputStream y FileReader es,
    FileInputStream lee el archivo byte por byte y FileReader lee el archivo, carácter por carácter.

    Así que cuando usted está tratando de leer el archivo que contiene el carácter "Č",
    en FileInputStream va a dar el resultado como 196 140, porque el ASCII valor de Č es 268.

    En FileReader va a dar el resultado como 268 que es el ASCII valor de la char Č.

  4. 0

    Un archivo de texto que se puede leer con tanto fileReader y fileInputStream pero de mp3 y png sólo puede ser leído utilizando fileInputStream

    1. fileReader lee char char

    2. fileInputStream lee el byte por byte

Dejar respuesta

Please enter your comment!
Please enter your name here