SOS, ajouter une ligne au debut du fichier
dani3000
Messages postés
65
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
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.??