Bonjour,
Je souhaite récupérer la dernière ligne non vide d'un fichier texte :
Voilà comment j'ai fait :Le problème c'est que si je rajoute volontairement des lignes vides à la fin, je n'arrive plus à récupérer ma dernière ligne non vide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
45 File fichier = new File("c:\\fichier.txt"); RandomAccessFile buffer = null; try { buffer = new RandomAccessFile(fichier, "r"); long fileLength = fichier.length() - 1; StringBuilder sb = new StringBuilder(); for (long filePointer = fileLength; filePointer != -1; filePointer--) { buffer.seek(filePointer); int readByte = buffer.readByte(); if (readByte == 0xA) { if (filePointer == fileLength) { continue; } else { break; } } else if (readByte == 0xD) { if (filePointer == fileLength - 1) { continue; } else { break; } } sb.append((char) readByte); } String lastLine = sb.reverse().toString(); System.out.println(lastLine); } catch (FileNotFoundException e) { System.out.println("Le fichier est introuvable"); } catch (IOException e) { System.out.println(); System.out.println("Impossible de le lire le fichier"); } finally { try { if (buffer != null) buffer.close(); } catch (IOException ex) { System.out.println("Impossible de fermer le fichier"); } } }
Merci pour votre aide.
Partager