Veröffentlicht 9. Februar 200520 j Hi Leute, ich bin auf der Suche nach einer Möglichkeit in eine Textdatei eine neue Zeile einzufügen. Hintergrund ist folgender, ich habe ein Log-File welches regelmäßig durch neue Einträge aktualisiert wird. Diese neuen Einträge sollen immer an der gleichen Stelle eingefügt werden, so das alle alten Einträge nach unten verschoben werden. Über ein RandomAccessFile werden die alten Einträge leider überschrieben, es sei denn ich lade das komplette Log-File in ein Array und füge die neuen dann hinzu. Allerdings dauert diese Methode mit zunehmender Dateigröße sehr lange. Kann mir das jemand nen ratsamen Tipp geben? Danke
18. Februar 200520 j Hi, die, meiner Meinung nach, beste Lösung für „logging“ in Java ist log4j. Es gibt zahlreiche Möglichkeiten log4j deinen Wünschen entsprechend zu konfigurieren. Guck es dir einfach an. :mod: http://logging.apache.org/log4j/docs/ oder deutsch http://www.javacore.de/tutorials/schnelle/log4jmanual.pdf Gruß .Erbse
18. Februar 200520 j Ich kann mein Beitrag nicht editieren :confused: ...egal. So nun, wenn du ein Buffer benutzt, dann soll es angeblich schneller gehen, hier ist mein Vorschlag: public class Tester { public static void main(String[] args) { String message = new Date() + " - test test\r\n"; File f = new File("logfile.log"); File temp = new File("temp.log"); try { if (!f.exists()) { f.createNewFile(); } byte[] buffer = new byte[1024]; FileInputStream fileIn = new FileInputStream(f); FileOutputStream out = new FileOutputStream(temp); out.write(message.getBytes()); int len = 0; while ((len = fileIn.read(buffer)) > 0) { out.write(buffer, 0, len); } fileIn.close(); out.close(); f.delete(); temp.renameTo(f); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } Buffergröße proportional zur Dateigröße. Viel Glück Gruß .Erbse
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.