Avatar billede grave Nybegynder
11. juni 2001 - 21:36 Der er 4 kommentarer og
1 løsning

readline()

er der ikke en måde hvorpå jeg kan læse sidste linie i en fil ??
helst sådan at jeg kan lave et loop der checker på om der bliver skrevet noget nyt (en ny linie)
Avatar billede delbing Nybegynder
12. juni 2001 - 21:05 #1
se java.io.File. Metoderne lastModified() og length() kan benyttes til at se hvornår filen sidst er blevet ændret, og hvad dens størrelse er.

Hvis du _vil_ læse sidste linie, så anbefaler jeg stadig at du kun prøver når du ved at den er blevet ændret, da det kan give bøvl hvis to processer har samme fil åben. Åben den for eksempel med en java.io.BufferedReader, og husk hvor lang den var sidste gang, så du kan benytte skip(.) til hurtigt at springe til der hvor evt. nye linier ville begynde (eller måske linien før det, da sidste linie måske blot er blevet længere).

Til loopet, extend en Thread med en run()-metode der står i en while(true)-løkke. Løkkens indmad: Kontroller filen som beskrevet ovenover, og tag en pause med sleep(.) så tråden ikke sluger alle CPU\'ens clockcykler.
Avatar billede logical Nybegynder
13. juni 2001 - 01:40 #2
Eller lidt ala tail:

public static void main(String[] args) throws Exception {
  BufferedReader reader = new BufferedReader(new FileReader(args[0]));
  String line;
  while((line = reader.readLine()) != null) {
    System.out.println(\">\" + line);
  }

  while(true) {
    line = reader.readLine();
    if (line != null)
    System.out.println(\"+\" + line);
    else {
    try { Thread.sleep(300); } catch (InterruptedException e) {}
    }
  }
}

Avatar billede grave Nybegynder
14. juni 2001 - 10:39 #3
der er ikke et problem med 2 proccesster. det er et shell scipt der skriver i den fil jeg vil læse fra...
den tail ting er perfekt !!!!!
så \"logical\" du kunne du ikke lige svare på spørgsmålet så du kan få dine piont ?
Avatar billede logical Nybegynder
14. juni 2001 - 16:10 #4
Ok, det var egentlig også meningen :-)

Jeg tror iøvrigt ikke lige, at det virker under alle filsystemer, men under unix er det perfekt.
Avatar billede grave Nybegynder
14. juni 2001 - 23:17 #5
>>logical:
har lige checket, det kører i hvertfald også på windows2000

jeg kan heller ikke lige se hvad der skulle give problemer ??
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester