Bonjour,
est-ce que quelqu'un pourrait m'indiquer comment insérer une ligne en fin de fichier sans écraser ce qu'il y avait dans ce fichier.
J'ai essayé des tas de trucs mais dsoit ce qui était avant disparaissait, soit ça n'écrivait rien.
Merci
Bonjour,
est-ce que quelqu'un pourrait m'indiquer comment insérer une ligne en fin de fichier sans écraser ce qu'il y avait dans ce fichier.
J'ai essayé des tas de trucs mais dsoit ce qui était avant disparaissait, soit ça n'écrivait rien.
Merci
Bonjour,
Comment écrire à la fin d'un fichier ?
@+
Salut,Envoyé par afrikha
Comment faire pour donner directement le mot qu'il faut ajouter sans passer par la lecture de ce mot a l'ecran
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 byte buffer[] = new byte[60]; int bytes = System.in.read(buffer); FileOutputStream fos = new FileOutputStream("fichier.txt", true); fos.write(buffer, 0, bytes);
Ben il suffit de transformer le mot que tu veux écrire en un tableau de byte puis tu passes ce tableau comme paramètre à la méthode write de FileOutputStream.
ça donne un code qui ressemble à ça :
Voilà, j'espère que c'est assez clair.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 FileOutputStream fos=null String mot="chaine à insérer à la fin du fichier"; try{ fos=new FileOutputStream("fichier.txt", true); byte[] tab=mot.getBytes(); fos.write(tab); }catch(IOException ex){ ex.printStackTrace(); }finally{ if(fos!=null){ fos.close(); } }
@+
Tout cela ne me plait pas trop. En général, pour écrire/lire du texte dans les fichiers, faut passer par les reader/writer ( encodage toussa ).
Tu as raisonEnvoyé par iohack
![]()
D'autant plus que la classe FileWriter possède un constructeur dont un des paramètres indique si oui ou non il faut ajouter le texte à celui déjà existant.
Je rectifie donc mon code :
Pour rappel : il faut utiliser les flux binaires pour les données binaires (images,...) et les flux de caractères pour lire/écrire du texte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 FileWriter fw=null String mot="chaine à insérer à la fin du fichier"; try{ fw=new FileWriter("fichier.txt", true); fw.write(mot,0,mot.length()); }catch(IOException ex){ ex.printStackTrace(); }finally{ if(fw!=null){ fw.close(); } }
@+
La compilation du bout de code :Envoyé par afrikha
donne cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 void ajoute_mot(String mot, String nomFichier){ FileWriter fw=null; try{ fw=new FileWriter(nomFichier, true); fw.write(mot,0,mot.length()); }catch(IOException ex){ ex.printStackTrace(); }finally{ if(fw!=null){ fw.close(); } } }
Pourquoi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 unreported exception java.io.IOException; must be caught or declared to be thrown fw.close(); ^ 1 error
Bah c'est simple, il est possible que ton close() génère une IOException, donc il faut la catcher.
Suffit de lire la javadoc pour le savoir: http://java.sun.com/j2se/1.5.0/docs/api/java/io/OutputStreamWriter.html#close()
Merci.Envoyé par sinok
Est-ce qu'il existe un lien montrant la priorité concernant les exceptions.
Par exemple si dans un code, il peut y avoir NumberFormatException et IOException quelle exception doit être mis dans le premier catch etc?
Peu importe si c'est une IOException elle ne sera pas récupérée par le catch NumerFormatException, la seule chose à faire est de ne pas mettre un catch (Exception e) en premier car là forcément il bouffe tout
Un peu de lecture sur les exceptions ? les exceptions et les bonnes pratiques![]()
@+
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager