Supportnet Computer
Planet of Tech

Supportnet / Forum / Anwendungen(Java,C++...)

.txt Datei bearbeiten mit Java





Frage

Hallo liebe Forum-User! Ich versuche im Moment ein Java Programm zu schreiben, das eine .txt Datei einlesen kann und die enthaltenen Woerter auf bestimmte Buchstabenkombinationen, die der Benutzer vorher eingibt, untersucht. Falls ein Wort eine gesuchte Buchstabenkombination enthält, soll dieses in einer sparaten .txt Datei gespeichert werden. Leider reichen meine Java-Kenntnisse nicht aus um eine Loesung fuer das Problem zu finden. Falls jemand eine Idee oder Anregungen jeglicher Art hat, wuerde ich mich sehr ueber eine Antwort freuen. Vielen Dank im voraus!

Antwort 1 von mr_x_hacker

Also ich hoffe mal, Du willst keinen fertigen Code, sollst ja noch was lernen :-)

java.io.*
- Datei einlesen: FileReader
Diesen evtl. in einen BufferedReader packen, zwecks zeilenweise lesen (readLine())
- StringBuffer um den Dateiinhalt zu speichern - so lange readLine() machen, bis null (= Dateiende), und jeweils die gelesene Zeile an den sb append()en
- StringTokenizer (java.util) zum zerlegen des Gesamt-Strings in einzelne Worte
- Für jedes Wort: wort.indexOf("suchwort") > -1 ?
Alternativ ab Java 1.5: wort.contains("suchwort")?

Versuch es mal mit diesen Stichworten und ggf. der api-doc, und stell dann konkrete Fragen wenn was nicht klappt :-)

Ciao Sascha

Antwort 2 von massju

Danke!
Bis zum StringTokenizer hab ich das verstanden und auch, wie ich glaube, relativ richtig umgesetzt.

Allerdings hab ich noch keine Idee, wie ich nach den Buchstabenkombinationen in meiner vorhandenen .txt Datei suchen kann und wie dann die betrffenden Woerter in einer neuen .txt gespeichert werden. Dazu brauch ich doch noch FileWriter oder?
Vielen Dank

Antwort 3 von mr_x_hacker

Ups, den Writer hab ich glatt vergessen - aber bist schon richtig selbst drauf gekommen :-)

Wie gesagt - string.indexOf() liefert die Position des Suchstrings im Wort:

String wort = "test1234";
String suchwort1 = "123";
String suchwort2 = "Hugo";

-> wort.indexOf(suchwort1) = 4
-> wort.indexOf(suchwort2) = -1 (da nicht gefunden)

Wenn indexOf() also -1 ist, es nicht drin, ansonsten kannst es speichern...

Ciao Sascha

Antwort 4 von massju

Vielen Dank fuer die Hilfe!
Ich hab jetzt mein Programm nach mehreren Versuchen zum Laufen gebracht und es funktioniert sogar.
Allerdings wuerde ich jetzt noch gerne eine Methode einfuegen, die aus der Ausgangsdatei, die am Anfang eingelesen wird bestimmte Buchstabenkombinationen herausloescht und durch vom User eingegebene ersetzt, und zwar ueberall dort, wo sie auftreten im Dokument.
Ueber Anregungen wuerde ich mich wie immer sehr freuen.
Tausend dank

Antwort 5 von mr_x_hacker

Nu, dafür gibt es entweder ein RandomAccessFile, mit dem man direkt Stellen in der Datei ansprechen kann, oder - die einfachere Methode - Du editierst einfach den eingelesenen String(Buffer), welcher die ganze Datei darstellt, und überschreibst sie komplett damit...
Also finden kannst Du die Stellen im String ja mit indexOf(), entsprechend mit replace() dann ersetzen... guck Dir halt mal an, was String(Buffer) so für Methoden anbietet, ist eigentlich alles nötige da, und entsprechend benannt :-)

Ciao Sascha

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: