Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
hab ich ein problem beschrieben dessen lösung mir aber nicht geeignet erscheint (siehe 2. beitrag von mir).
in diesem thread suche ich möglichkeiten wie man RandomAccessFile mit textdateien benutzen kann. auf den ersten blick schienen readLine() oder readUTF() sehr brauchbar, aber ersteres unterstützt keinen unicode (ich will unicodedateien bearbeiten) und die 2.funktion scheint mit reinen textdateien prinzipiell nicht klarzukommen - sie wirft immer eine EOFException. (nirgendswo steht wann diese exception nicht geworfen wird)
hat jemand ahnung von java unified i/o? geht es vielleicht damit?
jetzt frag ich mich wie ich nur bestimmte stellen einer textdatei bearbeiten kann. es soll nämlich nur eine einzige zeile geändert werden. und bei dateien mit vielen tausend zeilen jede einzelne anzufassen erscheint mir nicht praktikabel. alle beschweren sich über die performance von java applicationen. ich will nicht unnötig öl ins feuer gießen ;-)
Evtl. kannst Du was mit NIO machen. Da gibts Möglichkeiten, eine Datei in den Memory zu mappen und dann im Memory Daten zu ändern, was sich dann 1:1 auf das File auswirkt.
Forumssuche: MappedByteBuffer
Da solltest Du einiges finden.
Zunächst mal etwas zum Verständnis, vielleicht hat sich die Sache dann schon erledigt.
Dateien haben keine Zeilen.
Dateien sind eine folge von Bytes. Du kannst genau 2 Dinge an diesen Bytes ändern:
1. Einige Bytes ans Ende der Datei anhängen
2. Einige Bytes durch andere ersetzen, aber keine bytes entfernen oder hinzufügen
Wie du siehst kann man eine nichtexistente Zeile also nicht durch eine andere ersetzen. Wenn dir diese Tatsache bereits bewusst war, lass dich nicht hindern...
das mit den bytes ist mir durchaus bewusst. nur gibt es ja von java abstraktionen umd sich nicht um bits und bytes kümmern zu müssen. wie eben readline() und readutf().
randomaccessfile schein aber auch nicht eine gute wahl zu sein. ich hab inzwischen etwas gefunden was gehen könnte:
mir würde es reichen wenn man eine datei als ein string einlesen könnte. dieses string würde ich manipulieren und als eine datei zurückschreiben. das sollte doch gehen?
das mit den bytes ist mir durchaus bewusst. nur gibt es ja von java abstraktionen umd sich nicht um bits und bytes kümmern zu müssen. wie eben readline() und readutf().
die funktionen readline(),readutf() (analog für write) die auch randomaccessfile anbietet abstrahieren aber von bits und bytes. es gibt da auch read/writechars.
also die meisten funktionen von randomaccessfile bieten diese abstraktion. das problem is dann halt die kodiereung und andere dinge. (writeutf(string) schreibt vor den string 2 bytes mit der anzahl der bytes die geschrieben werden und wirft schon bei recht kleinen files:"java.io.UTFDataFormatException: encoded string too long: 2290099 bytes", writebytes(string) ignoriert glaub die kodieren?!)
also letztendlich ist randomaccessfile wohl unbrauchbar?!
deswegen scheint die empfehlung von ihe einen blick wert? hat jemand diesbezüglich eventuell ein beispiel? ich versteh eh nicht wieso man kaum beispiele im inet dafür findet - alle beispiele die ich gefunden hab machen whileschleifen über streams was mir wie gesagt sehr sauer aufstößt.