Effacer une ligne dans un fichier .dat
Bonjour la communauté,
Je fais appel à vous car j'ai un problème avec des fichiers .dat.
Je cherche à effacer une ligne selectionnée par l'utilisateur dans un fichier .dat
voici le code de ma méthode :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
public void effacerLigne(String nomDuFichier, String ligne){
FileInputStream fIn = null;
InputStreamReader isr = null;
BufferedReader br = null;
FileOutputStream fOut = null;
OutputStreamWriter osw = null;
try {
fIn = c.openFileInput(nomDuFichier);
isr = new InputStreamReader(fIn);
br = new BufferedReader(isr);
fOut = c.openFileOutput("t" + nomDuFichier, Context.MODE_APPEND);
osw = new OutputStreamWriter(fOut);
String line;
while ((line = br.readLine()) != null) {
if (!line.equals(ligne)) {
osw.write(line + '\n');
osw.flush();
}
else if (line.equals(ligne)){
Toast.makeText(c.getApplicationContext(), line + " " + ligne, Toast.LENGTH_LONG).show();
}
}
br.close();
isr.close();
fIn.close();
osw.close();
fOut.close();
File ancien = new File(nomDuFichier);
File nouveau = new File("t" + nomDuFichier);
ancien.delete();
nouveau.renameTo(ancien);
}catch(Exception e) {
Toast.makeText(c.getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();
} |
Tout se passe bien sauf à la fin,
Je souhaite renommer le nouveau fichier crée avec la ligne en moins, par le nom de l'ancien, mais cela ne fonctionne pas.
Quelqu'un a t'il une idée?