Los métodos de lectura y escritura del flujo de entrada y salida de bytes de archivos utilizan matrices de bytes para leer y escribir datos, es decir, procesar datos en bytes. Por lo tanto, los flujos de bytes no funcionan bien con caracteres Unicode . Por ejemplo, un carácter chino ocupa 2 bytes en el archivo. Si se utiliza un flujo de bytes, aparecerán "caracteres confusos" si se leen incorrectamente.
Correspondientes a los flujos de bytes FileInputStream y FileOutputStream están los flujos de caracteres FileReader y FileWriter (los flujos de entrada y salida de caracteres de archivo FileReader y FileWriter son subclases de Reader y Writer respectivamente, y sus métodos de construcción son:
FileReader (nombre de archivo de cadena); FileReader (nombre de archivo de archivo); Fi1eWriter (nombre de archivo de cadena); FileWriter (nombre de archivo de archivo); FileWriter (nombre de archivo de cadena, booleanappend);
Los métodos de lectura y escritura de flujos de entrada y salida de caracteres utilizan matrices de caracteres para leer y escribir datos, es decir, procesar datos con caracteres como unidad básica.
Por ejemplo:
importjava.io.*;publicclassMain{publicstaticvoidmain(Stringargs[]){FilesourceFile=newFile(a.txt);//El archivo leído FiletargetFile=newFile(b.txt);//El archivo escrito charc[]=newchar [19 ];//char array try{Writerout=newFileWriter(targetFile,true);//flujo de salida que apunta al destino Readerin=newFileReader(sourceFile);//flujo de entrada que apunta al origen intn=-1; while(( n= in.read(c))!=-1){out.write(c,0,n);}out.flush();out.close();}catch(IOExceptione){System.out.println (Error +e);}}}
Nota : Para las secuencias de Writer, el método de escritura primero escribe datos en el búfer. Siempre que el búfer se desborda, el contenido del búfer se escribe automáticamente en el destino. Si la secuencia está cerrada, el contenido del búfer se escribirá inmediatamente en el destino. . La secuencia llama al método flush() para vaciar inmediatamente el búfer actual, es decir, para escribir el contenido del búfer actual en el destino.