Maison >Java >javaDidacticiel >Comment copier efficacement des fichiers en Java sans boucle manuelle ?
Comment copier efficacement des fichiers en Java sans boucle manuelle
L'approche traditionnelle de copie de fichiers de Java utilisant la gestion des flux et la boucle manuelle peut être lourde. Cependant, il existe des alternatives plus concises dans le langage, en particulier dans le nouveau package NIO (New Input/Output).
NIO introduit les méthodes transferTo() et transferFrom() dans la classe FileChannel. Ces méthodes fournissent un moyen direct et efficace de transférer des données entre des fichiers.
Code de copie de fichiers basé sur NIO
import java.io.File; import java.nio.channels.FileChannel; import java.nio.file.Files; import java.nio.file.StandardOpenOption; public class FileCopierNIO { public static void copyFile(File sourceFile, File destFile) throws IOException { if (!destFile.exists()) { destFile.createNewFile(); } try ( FileChannel source = new FileInputStream(sourceFile).getChannel(); FileChannel destination = new FileOutputStream(destFile).getChannel() ) { destination.transferFrom(source, 0, source.size()); source.close(); destination.close(); } } }
Ce code simplifie la copie de fichiers vers une seule méthode. appel, éliminant ainsi le besoin de boucle manuelle et de gestion de flux. De plus, elle peut être encore simplifiée en utilisant la méthode Files.copy() du package NIO.2 :
import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardCopyOption; public class FileCopierNIO2 { public static void copyFile(File sourceFile, File destFile) throws IOException { Path sourcePath = sourceFile.toPath(); Path destPath = destFile.toPath(); Files.copy(sourcePath, destPath, StandardCopyOption.REPLACE_EXISTING); } }
La méthode Files.copy() fournit les mêmes fonctionnalités que la méthode FileChannel.transferFrom() , mais avec une syntaxe plus concise.
Avantages de la copie basée sur NIO
Le L'approche de copie de fichiers basée sur NIO offre plusieurs avantages par rapport à la méthode traditionnelle :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!