Copier sous java
Résolu/Fermé
medved007
Messages postés
33
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
3 janvier 2012
-
30 janv. 2009 à 20:58
Utilisateur anonyme - 21 févr. 2013 à 13:09
Utilisateur anonyme - 21 févr. 2013 à 13:09
A voir également:
- Copier sous java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Copier une vidéo youtube - Guide
- Super copier - Télécharger - Gestion de fichiers
2 réponses
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
329
30 janv. 2009 à 23:07
30 janv. 2009 à 23:07
Bonsoir Medved007,
Qu'est-ce qui te bloque exactement ?
Pour la copie du contenu du fichier1 dans le fichier2, il faut que tu utilises un FileReader (sur le fichier1) et un FileWritter (sur le fichier2). La seule chose qu'il faudra essayer de gérer correctement, c'est la gestion des lignes. Dans un FileReader tu ne peux copier que :
-les caractères un par un
-les caractères via un buffer de taille donnée.
Il te faudra donc parcourir ton buffer avant de l'écrire, afin de détecter le retour chariot (et les caractères qui resteront dans le buffer devront être écris durant l'itération suivante).
Cordialement,
Qu'est-ce qui te bloque exactement ?
Pour la copie du contenu du fichier1 dans le fichier2, il faut que tu utilises un FileReader (sur le fichier1) et un FileWritter (sur le fichier2). La seule chose qu'il faudra essayer de gérer correctement, c'est la gestion des lignes. Dans un FileReader tu ne peux copier que :
-les caractères un par un
-les caractères via un buffer de taille donnée.
Il te faudra donc parcourir ton buffer avant de l'écrire, afin de détecter le retour chariot (et les caractères qui resteront dans le buffer devront être écris durant l'itération suivante).
Cordialement,
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
329
31 janv. 2009 à 03:00
31 janv. 2009 à 03:00
Bonsoir,
Et voilà :
Je n'ai pas mis de commentaire.
Le nom des fichiers est codé en dur (après tu peux modifier ça pour les passer en paramètre par exemple).
Cordialement,
Et voilà :
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 Copieur { private static final String source = "C:\\source.txt"; private static final String destination = "C:\\destination.txt"; //Erreurs private static final String FNFError = "Fichier source inexistant"; private static final String WError = "Impossible d'écrire dans le fichier de destination"; public static void main(String args[]) { Copieur copieur = new Copieur(); File fSource = new File(source); File fDest = new File(destination); copieur.copie(fSource, fDest); } private void copie(File fSource, File fDest) { try { BufferedReader reader = new BufferedReader(new FileReader(fSource)); BufferedWriter writer = new BufferedWriter(new FileWriter(fDest)); String line; while (null != (line = reader.readLine())) { writer.write(line); writer.newLine(); } reader.close(); writer.close(); } catch (FileNotFoundException e1) { System.err.println(FNFError); return; }catch (IOException e) { System.err.println(WError); return; } } }
Je n'ai pas mis de commentaire.
Le nom des fichiers est codé en dur (après tu peux modifier ça pour les passer en paramètre par exemple).
Cordialement,
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
329
>
medved007
31 janv. 2009 à 12:29
31 janv. 2009 à 12:29
De rien.
Tu peux retirer les "return" dans les blocs catch, ils ne servent à rien.
Cordialement,
Tu peux retirer les "return" dans les blocs catch, ils ne servent à rien.
Cordialement,
medved007
Messages postés
33
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
3 janvier 2012
>
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
31 janv. 2009 à 12:31
31 janv. 2009 à 12:31
ok!
merci encore une fois
merci encore une fois
30 janv. 2009 à 23:15
j'ai envie de copier ligne par ligne et non caractére par caractére !
je peux avoir un exemple du programme a implémenté sous java STP ?
Merci 1000 fois ;)
30 janv. 2009 à 23:28
J'ai pas spécialement envie de programmer pendant 1h alors que t'as pas tenté, j'espère que tu me comprendras.
Cordialement,
31 janv. 2009 à 00:22
import java.io.*;
class Writer {
public static void main(String [] args){
File myqir = new File("myqir");
myqir.mkdir(); // call to mkdir() omitted!
File myFile = new File( myqir, "myFile.txt");
File myFile2 = new File( myqir, "myFile2.txt");
try{
FileWriter fw = new FileWriter(myFile);
//create a FileWriter that will send its
//output to a File
PrintWriter pw = new PrintWriter(fw);
//create a PrintWriter that will send its
//output to a Writer
pw.println("1");
pw.println("2");
pw.println("3");
pw.println("4");
pw.flush();
pw.close();
FileWriter fg = new FileWriter(myFile2);
PrintWriter pg = new PrintWriter(fg);
BufferedWriter vv = new BufferedWriter(pg);
pg.println("1");
pg.println("2");
String s;
String ss;
String d;
double p=0;
double h=0;
double h1=0;
FileReader er = new FileReader(myFile2);
BufferedReader zr = new BufferedReader(er);
while( (ss = zr.readLine()) != null)
{h=h+1;}
System.out.println(h);
for(int w=1;w<=h;w++)
{vv.newLine();}
FileReader fr = new FileReader(myFile);
BufferedReader br = new BufferedReader(fr);
while( (s = br.readLine()) != null)
{h1=h1+1;}
System.out.println(h1);
while( (s = br.readLine()) != null)
{if(p==0) {d=br.readLine(); pg.println(d);}
p=p+1;
for(int t=1;t<h1;t++)
{if(p==(t)) {d=br.readLine(); pg.println(d);}}
}
zr.close();
vv.flush();
vv.close();
pg.flush();
pg.close();
br.close();
}catch(IOException e) { }
} }
31 janv. 2009 à 01:32
Par contre je garderai pas ton code (ça valait bien le coup de t'embêter à le faire tu me diras...).
Cordialement,