1. Points de connaissances que vous devez connaître pour compléter ce programme :
1. Écrivez un programme Java simple, tel que hello world --- c'est absurde. . . . Ha ha
2. Comprendre les opérations sur les fichiers Java
3. Comprendre le fonctionnement du tampon de Java
4. Quelques points de gestion des exceptions pour les opérations sur les fichiers : 1. Le fichier source ne peut pas être lu. 2. Échec de la création du fichier de destination. 3. Problème de verrouillage de fichier. 4. Problème de caractères tronqués. . . Peut-être pas tous
Ce sont les packages nécessaires
importer java.io.BufferedInputStream ;
importer java.io.BufferedOutputStream ;
importer java.io.FileInputStream ;
importer java.io.FileOutputStream ;
import java.io.IOException ; La gestion des exceptions est requise pendant les opérations d'E/S.
Personnellement, je pense que cette méthode efficace, lorsqu'il s'agit d'installer un ordinateur, l'opération la plus efficace devrait être relativement élevée en opérations de mémoire et relativement faible en opérations d'E/S directes. . Donc ce que je choisis ici, c'est de lire la mémoire et d'écrire les IO de manière uniforme. Le code est le suivant :
package com.itheima;importer java.io.BufferedInputStream;importer java.io.BufferedOutputStream;importer java.io.FileInputStream;importer java.io.FileOutputStream;importer java.io.IOException;/** * 5. Écrivez une copie de le fichier programme, essayez d'utiliser la méthode la plus efficace. 1. Le fichier source ne peut pas être lu. 2. Échec de la création du fichier de destination 3. Problème de verrouillage de fichier 4. Problème de caractères tronqués */public class Test5 {public static void main(String[] args) lance IOException {String src_file = "D:/java/java.doc" ;String des_file = "D:/java/java_copy.doc";copyFile(src_file, des_file);System.out.println("OK!");}public static void copyFile(String src, String des) throws IOException {BufferedInputStream inBuff = null;BufferedOutputStream outBuff = null;try {// Créer un nouveau flux d'entrée de fichier et comparez-le. Il tamponne inBuff = new BufferedInputStream(new FileInputStream(src));// Créez un nouveau flux de sortie de fichier et mettez-le en mémoire tampon outBuff = new BufferedOutputStream(new FileOutputStream(des));// Buffer array byte[] b = new byte[1024 * 5];int len;while ((len = inBuff.read( b)) != -1) {outBuff.write(b, 0, len);}// Vider ce flux de sortie tamponné outBuff.flush();} enfin {//Fermez le flux if (inBuff != null)inBuff.close();if (outBuff != null)outBuff.close();}}}
Suppléments d'autres internautes
try { File inputFile = new File(args[0]); if (!inputFile.exists()) { System.out.println("Le fichier source n'existe pas, le programme se termine"); ; } Fichier outputFile = new File(args[1]); InputStream in = new FileInputStream(inputFile out = new FileOutputStream(outputFile date[]); octet[1024]; int temp = 0; while ((temp = in.read(date)) != -1) { out.write(date } in.close( ); (FileNotFoundException e) { // TODO Bloc catch généré automatiquement e.printStackTrace(); } catch (IOException e) { // TODO Bloc catch généré automatiquement e.printStackTrace(); }