Copier sous java

Résolu
medved007 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   -  
 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
A voir également:

2 réponses

Marco la baraque Messages postés 996 Date d'inscription   Statut Contributeur Dernière intervention   329
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   329 > medved007 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   > Marco la baraque Messages postés 996 Date d'inscription   Statut Contributeur Dernière intervention  
 
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   Statut Contributeur Dernière intervention   329 > medved007 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   329
 
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
medved007
 
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   Statut Contributeur Dernière intervention   329 > medved007
 
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   Statut Membre Dernière intervention   > Marco la baraque Messages postés 996 Date d'inscription   Statut Contributeur Dernière intervention  
 
ok!
merci encore une fois
0
Utilisateur anonyme
 
Bonjour je n'ai pas vu de remarque sur ces Bloucle ça veux dire qu'ele fonctionnent bien.?
0