Bonjour,
Une petite question :
Comment puis-je faire simplement pour lire un fichier en commençant par la fin ?
Par exemple, je veux faire afficher les 50 dernières lignes d'un fichier donné...
Merci pour votre aide.
Version imprimable
Bonjour,
Une petite question :
Comment puis-je faire simplement pour lire un fichier en commençant par la fin ?
Par exemple, je veux faire afficher les 50 dernières lignes d'un fichier donné...
Merci pour votre aide.
Bon, finalement j'ai trouvé une solution avec le RandomAccessFile.
Voici en gros mon code, qui peut être amélioré, je me doute bien :)
Je mets résolu à mon sujet, mais si vous avez des améliorations à me soumettre, je suis tout ouïe.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 try { StringBuffer content = new StringBuffer(); File file = new File(filename); RandomAccessFile raf = new RandomAccessFile(file, "r"); long position = file.length(); int code; // max est le nombre maximum de lignes à lire... while ((--position >= 0) && (max >= 0)) { raf.seek(position); code = raf.readByte(); // Teste si on a affaire à un saut à la ligne. if ((code == 13) || (code == 10)) { raf.seek(position - 1); int nextCode = raf.readByte(); if (((code == 13) && (nextCode == 10)) || ((code == 10) && (nextCode == 13))) { position--; if (max-- == 0) { break; } } } content.insert(0, (char) code); } } catch (Exception e) { e.printStackTrace(); }