Les fichiers en Java - Java - Programmation
Marsh Posté le 17-11-2009 à 15:00:07
BufferedReader bonne idée de question de ton prof pour apprendre a faire des io propres en java
Marsh Posté le 17-11-2009 à 15:06:10
Peux-tu m'aider un peu plus ?
C'est ma première expérience avec les fichiers en Java !
Marsh Posté le 17-11-2009 à 15:14:51
Tu créés un BudfferedReader pour lire ton fichier ligne à ligne et tu créés un BufferedWriter que tu utiliseras pour écrire les lignes dans le 2ème (après avoir testé la ligne bien entendu).
Marsh Posté le 17-11-2009 à 16:37:50
Voici le code d'une classe qui permet de copier le contenu d'un fichier vers un autre :
import java.io.*;
public class Main {
public static void main(String[] args) {
BufferedInputStream bis;
BufferedOutputStream bos;
try {
bis = new BufferedInputStream(new FileInputStream(new File("test.txt" )));
bos = new BufferedOutputStream(new FileOutputStream(new File("test3.txt" )));
byte[] buf = new byte[8];
while(bis.read(buf) != -1){
bos.write(buf);
}
System.out.println("Copie terminee" );
bis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Sauf qu'ici, la copie se fait caractère par caractère, ce qui ne m'aide pas beaucoup, car je dois lire ligne par ligne. Quelqu'un aura-t-il la gentillesse de me donner son avis là-dessus ?
Marsh Posté le 17-11-2009 à 16:40:11
il manque bos.close (), et le bis.close, mieux vaut le mettre dans un finally
Marsh Posté le 17-11-2009 à 16:44:48
Merci de me le rappeler, j'ai oublié de copier le bos.close()
Marsh Posté le 17-11-2009 à 17:50:35
Passe ta souris au dessus des mots BufferedReader et BufferedWriter de mon message précédent (les liens envoient vers la doc)
Mais sinon, le code que tu montres est un bon point de départ (l'esprit y est, il faut juste l'adapter à ton besoin)
Pour info, les BufferedReader/Writer sont très proches des BufferedInputStream/OutputStream, ce sont des classes qui font a peut près les mêmes choses sauf que les Reader/Writer sont spécialisés dans la manipulation des fichiers texte.
Ex : Lecture d'un fichier image => on utilise un InputStream
Lecture d'un fichier texte => on utilise un Reader
Marsh Posté le 17-11-2009 à 14:55:24
Bonjour,
Je cherche une classe Java qui prend en argument deux noms de fichiers :
La classe lit chaque ligne du premier fichier et la copie dans le second fichier, si la ligne contient un seul caractère suivi d'espaces, elle ne sera pas copiée.