Préface: les flux IO sont principalement divisés en deux catégories, à savoir les flux d'octets et les flux de caractères
Avis:
1. Utilisez des flux d'octets pour les fichiers audio, les images et les vidéos (large plage).
2. S'il implique uniquement du texte, utilisez des flux de caractères
Copier le contenu du texte à l'aide de Byte Stream (d'autres fichiers peuvent également l'être)
Le code est le suivant:
Importer java.io.file; importer java.io.fileInputStream; import java.io.filenotfoundException; import java.io.fileoutStream; importer java.io.ioexception; import java.io.inputStream; infile = nouveau fichier ("src.txt"); // Source File InputStream dans = new FileInputStream (Infile); // Fichier File Stream File OutFile = new File ("Tar.txt"); // cible file outputStream out = new FileOutputStream (outfile); // Fichier Structure Stream Byte [] buff = nouveau octet [1024]; // Créer un tampon et allouer 1024 octets de mémoire à buff int num = 0; while ((num = in.read (buff))! = - 1) {// juger si le nombre maximum d'octets lecture est 1024 out.write (buff, 0, num); // out.write (buff); // C'est OK, mais il est facile de provoquer un contenu de fichier incorrect Out.flush (); // frais de la chaîne de tampon s = new String (buff); System.out.println ("Contenu de fichier copié avec succès"); System.out.println ("Le contenu de copie de fichiers est / n" + s); } in.close (); // Fermez le flux d'entrée Out.close (); // ferme le flux de sortie // infile.delete (); // Supprimer le fichier source // outfile.renameto (nouveau fichier ("rename.txt")); // Renommez le fichier de sortie} catch (filenotfoundException e) {e.printStackTrace (); // imprime les informations d'exception sur la ligne de commande et la raison de l'erreur dans le programme} catch (ioException e) {e.printStackTrace (); }}}Copier le contenu du texte à l'aide de flux de caractères (fichiers texte uniquement)
Le code est le suivant:
Importer java.io.bufferedReader; Importer java.io.bufferedwriter; import java.io.file; import java.io.filenotfoundException; import java.io.fileReader; import java.io.filewriter; infile = nouveau fichier ("d: /src.txt"); // Fichier Source FileReader FileReader = new FileReader (Infile); // Lire le flux de caractéristiques du fichier bufferedReader BufferedReader = new BufferedReader (fileReader); // Mettez les caractères de lecture dans le fichier de cache outfile = nouveau fichier ("d: /tar.txt"); // File FileWriter FileWrite = new FileWriter (OutFile); // Écrivez le flux de caractères BufferedWriter BufferedWriter = new BufferedWriter (FileWrite); // Mettez le flux de caractères à saisir dans la chaîne de cache s = ""; String str = ""; while ((s = bufferedReader.readline ())! = null) {// Déterminez si le flux de caractères de fichier a été lu BudgeredWriter.Write (S); // Le cache de flux de caractères est écrit dans le fichier bufferedwriter.newline (); // Lire par ligne, si le caractère newline est rencontré, Newline BufferedWriter.Flush (); // cache frais Str + = S; } System.out.println ("Le contenu de copie de fichiers est / n" + str); // Fermez le flux de flux d'entrée et de sortie FileReader.Close (); BufferedReader.Close (); filewrite.close (); bufferedwriter.close (); bufferedwriter.close (); // infile.delete (); // Supprimer le fichier source // outfile.renameto (nouveau fichier ("rename.txt")); // Renommez le fichier de sortie} catch (filenotfoundException e) {e.printStackTrace (); // imprime les informations d'exception sur la ligne de commande et la raison de l'erreur dans le programme} catch (ioException e) {e.printStackTrace (); }}}illustrer:
Si vous souhaitez copier le contenu du texte en ajoutant du contenu de fichier au lieu de l'écraser, modifiez-le comme suit
OutputStream out = new FileOutputStream (OutFile, true); // flux d'octet
FileWriter FileWrite = new FileWriter (OutFile, true); // flux de caractères
Si vous souhaitez spécifier la taille du cache dans le flux de caractères, modifiez-le comme suit
BufferedWriter BufferedWriter = new BufferedWriter (FileWrite, 1024);