Java n'offre pas un one-liner soigné et joli pour la copie de fichiers . Toutefois, d'entrée-sortie (I /O) des classes de fichiers de Java , il est assez facile d'écrire votre propre fonctionnalité de copie de fichiers. Commencez par écrire la fonctionnalité de copie de fichiers que le code scriptlet directement dans vos ServerPages Java ( JSP) de la page. Instructions
Les bases et Catch article
1
Importez les classes Java dont vous aurez besoin pour lire et écrire des fichiers en utilisant la directive de page dans votre page JSP : <%
@ la page import = " java.io. * " %>
2
créer un bloc try-catch dans votre page JSP pour gérer IOException :
<% try { } catch ( IOException ex) { }%>
3
gérer les erreurs de IOException à l'intérieur de la clause catch que nécessaire pour la page JSP de faire basculer . Imprimez le message d'exception en flagrant couleurs dans la page JSP en brisant sur le code scriptlet :
catch ( IOException ex) { %> < style fort = " color: red; background-color : gold ; "> < % = ex.getMessage ()% > <%}
le bloc try
4
Ouvrez le fichier source ( le fichier que vous souhaitez copier ) et le fichier de destination ( où la copie sera écrit ) à l'intérieur du bloc try . SrcFileName et dstFileName sont des variables de chaîne contenant le chemin et le nom du fichier de chaque fichier : Photos
fichier SRCFILE = new File ( srcFileName ) ; dstfile fichier = new File ( dstFileName ) ;
5
Vérifiez que le fichier source existe, et jeter un IOException si elle ne fait pas:
si ( srcFile.exists ( !)) {throw nouveau IOException ("Aucun fichier source :" + srcFileName );} < br > Photos 6
Vérifiez que le fichier de destination existe et est accessible en écriture . Jetez un IOException si elle n'est pas :
if ( dstFile.exists ()) {if { throw new IOException ( "Destination lecture seule :" + dstFileName ) ( dstFile.canWrite ( !)) ;} } else { throw new IOException ( "Destination pas été créé :" + dstFileName );}
7
Open source et les flux de fichiers de destination : Photos
FileInputStream srcStrm = new FileInputStream ( SRCFILE ) ; FileOutputStream dstStrm = new FileOutputStream ( dstfile ) ;
8
Créer un tableau d'octets pour stocker des données :
byte [] buf = new byte [ 4096 ] ;
9
lire le flux source et écrire dans le flux de destination dans une boucle while qui continue jusqu'à ce que toutes les données ont été lues à partir du fichier source:
int len ; while (( len = srcStrm.read ( buf ) ) > 0) { dstStrm.write ( buf, 0 , len );}
10
Fermer les flux de fichiers :
srcStrm.close () ; dstStrm . close () ;