Bonjour,
Sous UNIX, la command "tail -f <fichier>" permet de voir les nouvelles lignes ajoutées au fichier en temps réel. Comment vous programmeriez l'équivalent en Java ?
Bonjour,
Sous UNIX, la command "tail -f <fichier>" permet de voir les nouvelles lignes ajoutées au fichier en temps réel. Comment vous programmeriez l'équivalent en Java ?
Ta question n'est pas trop claire , mais je ponse que ce n'est pas fesable.
la console java en effet, te mis les derniere ligne de l'output donc a mon avis (Un tail -f)
ciao![]()
Pas compris là....Envoyé par Alghero
Sinon, tu veux faire quoi exactement? Lancer la commande système, ou avoir un équivalent qui fait la même chose programmé en Java?
Je voulais avoir un équivalent de la meme chose mais programmé en Java...Envoyé par plegat
Comme je pense que c'est lié à de la programmation bas niveau, je pense que ça doit être impossible à faire en Java.
Pourtant une socket ou un file descriptor d'un fichier c'est la meme chose. Et quand des données sont disponibles sur une socket, le InputStream contient une variable "available" à jour... Pourquoi cela ne marcherait pas sur les files descriptor de fichiers...
![]()
Salut,
Ben c'est juste du traitement de fichiers via les I/O... Je ne vois pas pourquoi ce serait impossible à faire...Envoyé par Grand sorcier
Ben ca marche exactement pareil justement :Envoyé par Grand sorcier
En tout ca sur mon poste cela fonctionne très bien...
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 public static void tailForEver(File file) throws IOException, InterruptedException { final Thread currentThread = Thread.currentThread(); InputStream stream = new FileInputStream(file); try { byte[] buf = new byte[8192]; int len; while (!currentThread.isInterrupted()) { len = stream.read(buf); if (len<=0) { // Si on a atteint la fin du fichier, // on fait une pause avant de recommencer à lire Thread.sleep(1000); continue; } System.out.write(buf, 0, len); } } finally { stream.close(); } }
a++
Partager