SOS, ajouter une ligne au debut du fichier
Fermé
dani3000
Messages postés
58
Date d'inscription
jeudi 9 mai 2013
Statut
Membre
Dernière intervention
4 juin 2013
-
23 mai 2013 à 13:02
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 23 mai 2013 à 19:17
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 23 mai 2013 à 19:17
A voir également:
- SOS, ajouter une ligne au debut du fichier
- Fichier rar - Guide
- Fichier host - Guide
- Fichier iso - Guide
- Comment réduire la taille d'un fichier - Guide
- Ouvrir fichier .bin - Guide
2 réponses
Utilisateur anonyme
23 mai 2013 à 13:46
23 mai 2013 à 13:46
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.
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 015
23 mai 2013 à 19:17
23 mai 2013 à 19:17
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(); }
23 mai 2013 à 14:09
mais est ce qu'il y a une autre facon mieux que de copier le contenue et le réinsérer.??