Java Programm zum Suchen und Ersetzen von Text Dateien

Newton1990

Mitglied
Hallo zusammen 🙂

Als aller erstes muss ich sagen das dies hier ein echt cooles Forum ist, hat mir bis jetzt schon oeffters einmal weiter geholfen beim Programmieren.

Zu mir ich bein ein absoluter Programmier Anfaenger. Studiere seid Oktober 2012 Informatik. Bis jetzt bin ich immer ganz gute mitgekommen und hab auch die Programmieraufgaben die wir bekommen haben eigentlich immer recht gut verstanden, jetzt steht ich aber vor einer wo ich echt machtlos bin. Bitte um eure Hilfe habe echt keine Ahnung was ich machen muss.

Ich danke euch allen schon einmal 😉

Code:

Erstellen sie ein Java Programm zum Suchen und Ersetzen von Texten in Dateien. Der Aufruf soll wie folgt erfolgen:
	java Replace suchstring ersetzungsstring datei1 datei2 ...

Zu beachten:

- Suchstring und Ersetzungsstring muessen nicht leer und verschieden sein
- Es muss mindestens eine Datei angegeben sein
- Die Dateien muessen existierende normale Dateien sein
- Es muss Schreibrecht auf die Dateien bestehen.
- Jede Datei ist zeilenweise zu durchlaufen. Dabei ist jeweils das Suchstring so oft es vorkommt zu ersetzen.
- Ueberlegen sie sich, wie sie es hinbekommen, dass die Datei selbst wieder ueberschrieben wird.
- Moegliche Ausnahmen sind explizit zu behandeln.

 
 
- Erstelle ein neues Java-Projekt in Eclipse
- Erstelle eine Java Main Klasse
- Weise die Parameter Variablen zu
- Parameter 0 => Suchstring
- Parameter 1 => Ersetzstring
- Parameter 2-n => Array oder Liste von Dateien​
- Schleife über Dateiarray
- In Schleife
- jede Datei öffnen
- jede Datei zeilenweise durchgehen
- Zeile in String lesen und Java Replace Funktion verwenden
- Zeile zurückschreiben​
 
So hab den Code soweit fertig ich. Kann jetzt eine Neue Datei mit Inhalt erstellen auch eine bereits vorhandene Datei kann ich einen Inhalt beifuegen.
kann aber LEIDER noch nichts ersetzten weis echt nicht wie das gehen soll. Muss die uebung unbedingt abgeben sonst werde ich wahrscheinlich nicht zur Klausur zugelassen.
vll kann mir jemand ja den Code geben waere echt spitze 🙂
DANKE DANKE

Code:
public class Replace
{
    public static void main(String args[]){
        Scanner s = new Scanner(System.in);
        System.out.println("Welche Datei soll eingelesen werden?");
        String dateiname = s.next();
        String dateiInhalt = "";
        Formatter x = null;
        File f = new File("C://test//"+dateiname+".txt");
        if(f.exists()){
            try{
                Scanner leser = new Scanner(f);
                while(leser.hasNext()){
                   dateiInhalt+=leser.next() + " ";
                }
                x = new Formatter(f);
                x.format("%s", dateiInhalt);
            } catch (FileNotFoundException e){
                e.printStackTrace();
            }
        }else{
            try{
                x = new Formatter(f);
            } catch (FileNotFoundException e){
                e.printStackTrace();
            }
        }
        
        System.out.println("Was soll neu reingeschrieben werden?");
        String neueEingabe = s.next();
        x.format("%s", neueEingabe);
        x.close();
            
    }
}
 
Bis KW 5 ist ja noch ein bisschen Zeit.
Besten Gruß an Prof. Dr. H.G. Folz

P.S.
Code:
ACHTUNG:  Testen Sie Ihr Programm nur mit unwichtigen Dateien!
~~~~~~~~


ZUSATZ:   Es sind eigene Ausnahmeklassen zu verwenden!
~~~~~

P.P.S. In diesem Forum hat schon jemand diese Aufgabe von der HTW Saarland aufgehabt. Anfang 2011.
Und derjenige war mit Lösung schon einen Tacken weiter.
 
Bitte nimm/verwende doch BufferedReader.

Wie würdet ihr es anstellen (dieses Wort hat 10 Bedeutungen 😀 ), daß im Prinzip gleichzeitig gelesen und geschrieben werden soll... Zuerst alles einen/m StringBuilder hinzufügen, oder gibt es bessere Wege?

lg
 
kann aber LEIDER noch nichts ersetzten weis echt nicht wie das gehen soll.

Daten Input/Output (IO) sind grundlegene Funktionen von Java. Ein wenig googeln wird hier wunder bewirken. Vor allem, wenn die Aufgabe im Inet schon so bekannt ist.

Beachte, dass du nicht in der Datei einfach etwas ändern kannst.

Du musst die Datei VOLLSTÄNDIG einlesen, verändern und dann vollständig schreiben.

Ich muss sagen, dass ich bisher gar nicht gewusst habe, dass man den Formatter zu schreiben von Dateien verwenden kann. Wenn du dir aber nun noch die Funktionen der String Klasse anschaust, wirst du schnell ein Replace finden.

Dann kannst du hier:
Code:
dateiInhalt+=leser.next() + " ";
ansetzen und den Replace beim Lesen anwenden.

Muss die uebung unbedingt abgeben sonst werde ich wahrscheinlich nicht zur Klausur zugelassen.
vll kann mir jemand ja den Code geben waere echt spitze

Nö. :lol:

Bitte nimm/verwende doch BufferedReader.

Habe nur kurz überlesen, was der Formatter macht, aber der scheint einen BufferdStram zu verwenden, zumindest steht das so im JavaDoc. In der Hinsicht ein unnötiger Vorschlag, weil der TO bereits schreiben kann.

Wie würdet ihr es anstellen (dieses Wort hat 10 Bedeutungen ), daß im Prinzip gleichzeitig gelesen und geschrieben werden soll... Zuerst alles einen/m StringBuilder hinzufügen, oder gibt es bessere Wege?

Google kennt hier die Antwort. Es sind Basics, google sie und hijack keine Forenthreads für deine Grundlagen Diskussionen.

Es ist für mich ehh fragflich, wieso man nicht einen eigenen Account nimmt, sondern den eins qualifizierteren Java-Programmierers, um diesen dann in Misskredit zu bringen.
 
Zuletzt bearbeitet von einem Moderator:
Das war eine berechtigte Frage zu einem Kern punkt. Du/Sie, Marcinek, sollten sich mit derartiger Kritik besser zurückhalten, ansonsten werde ich auch entsprechend darauf antworten.
 

Neue Themen


Zurück
Oben