Prefacio: las transmisiones de IO se dividen principalmente en dos categorías, a saber, transmisiones de bytes y transmisiones de personajes
Aviso:
1. Utilice transmisiones de bytes para archivos de audio, imágenes y videos (amplio rango).
2. Si solo involucra texto, use transmisiones de caracteres
Copiar contenido de texto usando Byte Stream (otros archivos también pueden ser)
El código es el siguiente:
import java.io.file; import java.io.fileInputStream; import java.io.filenotfoundException; import java.io.fileOutputStream; import java.io.ioException; import java.io.inputStream; import java.io.outputStream; public class Copyfile {public static void main (string (string (string [] infile = nuevo archivo ("src.txt"); // Fuente de archivo InputStream in = new FileInputStream (infile); // Archivo de entrada flujo de archivo outFile = nuevo archivo ("tar.txt"); // El archivo de destino OutputStream out = new FileOutputStream (OUTFILE); // Archivo de salida de transmisión byte [] buff = new Byte [1024]; // crear un búfer y asignar 1024 bytes de memoria a Buff int num = 0; while ((num = in.read (buff))! =-1) {// juzga si el número máximo de bytes lectura es 1024 out.write (buff, 0, num); // out.write (buff); // Esto está bien, pero es fácil causar contenido de archivo incorrecto out.flush (); // fresca la cadena del búfer S = nueva cadena (buff); System.out.println ("File Content Copied con éxito"); System.out.println ("El contenido de copia del archivo es /n"+s); } in.close (); // cierre la entrada stream out.close (); // cierre la transmisión de salida // infile.delete (); // eliminar el archivo de origen // outFile.Renameto (nuevo archivo ("rename.txt")); // Cambiar el nombre del archivo de salida} Catch (FileNotFoundException e) {E.PrintStackTrace (); // Imprima la información de excepción en la línea de comando y el motivo del error en el programa} Catch (IOException e) {E.PrintStackTrace (); }}}Copiar contenido de texto usando transmisiones de caracteres (solo archivos de texto)
El código es el siguiente:
import java.io.bufferedReader; import java.io.bufferedwriter; import java.io.file; import java.io.filenotfoundException; import java.io.filereader; import java.io.filewriter; import java.io.ioexception; public class Copyfile {public static vide (string [] args; Archivo ("d: /src.txt"); // Archivo de origen FileReader FileReader = new FileReader (infile); // Leer la transmisión de caracteres del archivo BufferedReader BufferedReader = new BufferedReader (FileReader); // Ponga los caracteres de lectura en el archivo de caché Outfile = nuevo archivo ("d: /tar.txt"); // Dirigir a FileWriter FileWrite = new FileWriter (OUTFILE); // Escribir la transmisión de caracteres BufferedWriter BufferedWriter = new BufferedWriter (FileWrite); // Ponga la transmisión de caracteres que se ingrese en la cadena de caché S = ""; Cadena str = ""; while ((s = bufferedReader.Readline ())! = NULL) {// Determine si la secuencia de caracteres del archivo ha sido leída bufferedwriter.write (s); // El caché de transmisión de caracteres se escribe en el archivo bufferedwriter.newline (); // Leer por línea, si se encuentra el carácter de Newline, Newline BufferedWriter.flush (); // caché fresco Str+= S; } System.out.println ("El contenido de copia del archivo es /n"+str); // cierre la entrada y salida Stream FileReader.close (); BufferedReader.Close (); FileWrite.Close (); BufferedWriter.Close (); BufferedWriter.Close (); // infile.delete (); // eliminar el archivo de origen // outFile.Renameto (nuevo archivo ("rename.txt")); // Cambiar el nombre del archivo de salida} Catch (FileNotFoundException e) {E.PrintStackTrace (); // Imprima la información de excepción en la línea de comando y el motivo del error en el programa} Catch (IOException e) {E.PrintStackTrace (); }}}ilustrar:
Si desea copiar contenido de texto agregando contenido del archivo en lugar de sobrescribirlo, modifíelo de la siguiente manera
OutputStream out = new FileOutputStream (outFile, true); // transmisión de bytes
FileWriter FileWrite = new FileWriter (outFile, true); // transmisión de personajes
Si desea especificar el tamaño de la memoria caché en la secuencia de caracteres, modifíquelo de la siguiente manera
BufferedWriter BufferedWriter = new BufferedWriter (FileWrite, 1024);