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
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
A voir également:

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 328
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,
0
medved007 Messages postés 33 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 3 janvier 2012
30 janv. 2009 à 23:15
merci d'avoir repondu si vite a ma question !
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 ;)
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 328 > medved007 Messages postés 33 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 3 janvier 2012
30 janv. 2009 à 23:28
Bah fais le, et je t'aiderai si t'as des problèmes.
J'ai pas spécialement envie de programmer pendant 1h alors que t'as pas tenté, j'espère que tu me comprendras.

Cordialement,
0
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 à 00:22
voici le programme ou je me suis bloqué :


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) { }
} }
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 328 > medved007 Messages postés 33 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 3 janvier 2012
31 janv. 2009 à 01:32
Je regarde ça.
Par contre je garderai pas ton code (ça valait bien le coup de t'embêter à le faire tu me diras...).

Cordialement,
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 328
31 janv. 2009 à 03:00
Bonsoir,
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,
0
Merci infiniment, j'ai fais le test et ca marche a merveille .
je te tienderai au courant si je trouve quelque chose ;)
merci 1000 fois
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 328 > medved007
31 janv. 2009 à 12:29
De rien.
Tu peux retirer les "return" dans les blocs catch, ils ne servent à rien.

Cordialement,
0
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
ok!
merci encore une fois
0
Utilisateur anonyme
21 févr. 2013 à 13:09
Bonjour je n'ai pas vu de remarque sur ces Bloucle ça veux dire qu'ele fonctionnent bien.?
0