SOS, ajouter une ligne au debut du fichier
dani3000
Messages postés
58
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai mon code qui ecrit dont un fichier un mot.
le probleme quand je l'execute deux fois le contenue est ecrasee;
pouvez vous me le corriger ,afin qu'il ajoute le mot au debut.
et merci :D
//code
public static void PMOs(String a,String mot){
int count = 1;
try{
File ff=new File("C:\\Users\\WorkD\\Documents\\NetBeansProjects\\window\\"+fichier+".txt"); // définir l'arborescence
FileWriter ffw = new FileWriter(ff);
ffw.write(" "+mot);
ffw.write("\r");
ffw.close();
}
catch (Exception e) {}
}
}
J'ai mon code qui ecrit dont un fichier un mot.
le probleme quand je l'execute deux fois le contenue est ecrasee;
pouvez vous me le corriger ,afin qu'il ajoute le mot au debut.
et merci :D
//code
public static void PMOs(String a,String mot){
int count = 1;
try{
File ff=new File("C:\\Users\\WorkD\\Documents\\NetBeansProjects\\window\\"+fichier+".txt"); // définir l'arborescence
FileWriter ffw = new FileWriter(ff);
ffw.write(" "+mot);
ffw.write("\r");
ffw.close();
}
catch (Exception e) {}
}
}
A voir également:
- SOS, ajouter une ligne au debut du fichier
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
2 réponses
Salut salut,
Je ne sais pas si comme en PHP tu peux placer le pointeur au début du fichier.
Sinon tu récupères tout ce que contient le fichier, tu ajoutes ce que tu veux au début et tu réécris en écrasant.
Je ne sais pas si comme en PHP tu peux placer le pointeur au début du fichier.
Sinon tu récupères tout ce que contient le fichier, tu ajoutes ce que tu veux au début et tu réécris en écrasant.
Dans tous les cas, il faudra lire et réécrire tout le contenu dans le fichier car on ne peux pas agrandir un fichier par le début, il faut donc décaler tout les caractères !
C'est donc le genre d'opérations très lourdes qu'il faut absolument utiliser le moins souvent possible. L'idéal étant de ne le faire qu'une seule fois dans ton programme. Si tu as plusieurs textes à ajouter, enregistres les d'abord dans un StringBuilder avant d'appeler la méthode d'ajout dans le fichier.
Maintenant passons à la pratique, avec un RandomAccessFile
C'est donc le genre d'opérations très lourdes qu'il faut absolument utiliser le moins souvent possible. L'idéal étant de ne le faire qu'une seule fois dans ton programme. Si tu as plusieurs textes à ajouter, enregistres les d'abord dans un StringBuilder avant d'appeler la méthode d'ajout dans le fichier.
Maintenant passons à la pratique, avec un RandomAccessFile
public static void addAtBegin(File file, String text) throws IOException { RandomAccessFile access = new RandomAccessFile(file,"rw"); long length = access.length(); if (length>Integer.MAX_VALUE) { access.close(); throw new IOException("Fichier trop grand"); } byte[] buf = new byte[(int) length]; access.readFully(buf); access.seek(0); access.write(text.getBytes()); access.write(buf); access.close(); }
mais est ce qu'il y a une autre facon mieux que de copier le contenue et le réinsérer.??