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
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
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
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
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
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

