Copier sous java
Résolu
medved007
Messages postés
33
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour a tous !
j'ai envie de réaliser un programme en java qui permet de copier le contenu d'un fichier texte dans un autre ligne par ligne...
avant tout, ce programme commence par créer deux répertoires, puis un fichier texte avec 5 lignes dans le premier répertoire, et un autre fichier texte vierge dans le deuxième répertoire.
après son exécution, les 5 lignes vont être recopier dans le deuxième fichier texte vierge ligne par ligne .
Merci pour vos réponse les amis
j'ai envie de réaliser un programme en java qui permet de copier le contenu d'un fichier texte dans un autre ligne par ligne...
avant tout, ce programme commence par créer deux répertoires, puis un fichier texte avec 5 lignes dans le premier répertoire, et un autre fichier texte vierge dans le deuxième répertoire.
après son exécution, les 5 lignes vont être recopier dans le deuxième fichier texte vierge ligne par ligne .
Merci pour vos réponse les amis
A voir également:
- Copier sous java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
2 réponses
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,
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,
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 ;)
J'ai pas spécialement envie de programmer pendant 1h alors que t'as pas tenté, j'espère que tu me comprendras.
Cordialement,
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) { }
} }
Par contre je garderai pas ton code (ça valait bien le coup de t'embêter à le faire tu me diras...).
Cordialement,