A
Andy_-
Gast
Hi,
versuche gerade eine kleine Testanwendung zu bauen. Soll einen txt einlesen, die ständig mit neuen Infos gefüllt wird.
Das Lesen soll alle 500msec stattfinden, jedoch soll er nicht jedesmal den kompletten Inhalt übergeben sondern nur
den neu hinzugekommen bereich. Also hab ich mir gedacht, dass ich mir die Länge des Stringbuilders holle. Wobei ich dann von 0 bis vorigeLänge entferne - genau das geht aber nicht. Wenn ich stattdessen eine fest Zahl einsetze geht es.
Der integer vorigeLänge/getLenght stimmt eigentlich.
Hier der Code:
versuche gerade eine kleine Testanwendung zu bauen. Soll einen txt einlesen, die ständig mit neuen Infos gefüllt wird.
Das Lesen soll alle 500msec stattfinden, jedoch soll er nicht jedesmal den kompletten Inhalt übergeben sondern nur
den neu hinzugekommen bereich. Also hab ich mir gedacht, dass ich mir die Länge des Stringbuilders holle. Wobei ich dann von 0 bis vorigeLänge entferne - genau das geht aber nicht. Wenn ich stattdessen eine fest Zahl einsetze geht es.
Der integer vorigeLänge/getLenght stimmt eigentlich.
Hier der Code:
Code:
public class Reader {
StringBuilder eingelesen = new StringBuilder();
int getLenght = eingelesen.length();
public Reader() {
boolean stopgrab = false;
long oldTimeStand = System.currentTimeMillis();
while (!stopgrab) {
long currentTimeStand = System.currentTimeMillis();
long timeDelta = currentTimeStand - oldTimeStand;
if (timeDelta > 500) {
startReading();
//müssen dann wohl txt löschen und neuen schreiben
oldTimeStand = currentTimeStand;
}
}
}
public void startReading() {
try {
BufferedReader input = new BufferedReader(new FileReader("D:\\log.txt"));
try {
String line = null;
eingelesen = null;
while ((line = input.readLine()) != null) {
eingelesen.append(line);
eingelesen.append(System.getProperty("line.separator"));
}
} finally {
input.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
System.out.println(getLenght + " zweite durchlauf");
//das hier geht nicht:
StringBuilder test = eingelesen.delete(0, getLenght);
new LinkChecker().check(test);
getLenght = eingelesen.length();
System.out.println(getLenght);
}
}