String in einer txt ersetzen

Alex/89

Mitglied
Hallo zusammen:)

ich habe ein kleines Problem beim ersetzen von einem String in einer txt Datei.

Java:
public class Versuch {
   
    public static void main (String[] args){
       
       
        String buf = null ;
         String writeBack = null ;
      
         try
         {
             //Datei lesen
           BufferedReader input = new BufferedReader(new InputStreamReader(new FileInputStream("Versuch.txt")),10000);
   
           //Datei speichern
          
          FileOutputStream output = new FileOutputStream("Versuch.txt") ;
          PrintStream ps = new PrintStream(output);
        
          // Zeilen lesen
           while (input.ready()){buf = input.readLine() ;
         
                   //String ersetzen
             writeBack = buf.replaceAll("Birne", "Orange") ;
           
            ps.println(writeBack) ;
           
           }
          
           input.close() ;
          
   
         }
        catch (Exception e)
        {
          System.out.println(e);
          System.out.println("----------------------Exception laden/schreiben!");
          System.exit(1);
        }
       
         return;
       
            }
    }


meine txt beinhaltet folgenden Text "Banane; Apfel;Birne;Kirsche;null". Beim Starten soll der String "Birne" gegen "Orange" ausgetauscht werden und anschließend wieder in der Selben txt gespeichert werden. Problem ist jetzt nur folgendes: speichere ich die Änderung in der Selben txt ab, ist diese nach Vollbringung leider leer. Wenn die Änderung aber in einer neuen txt z.b. "Versuch2.txt" gespeichert wird, läuft das ganze problemlos.


Danke schon mal im Voraus :)

mfg Alex
 

thet1983

Top Contributor
Ich würde mit Methode arbeiten
Code:
public String readAndReplace(String oldWord, String newWord, File file){
   //....
}
und eine die die Datei neu beschreibt.
Code:
public void writeFile(File file, String text){
   //code..
}
 
Zuletzt bearbeitet:

mrBrown

Super-Moderator
Mitarbeiter
Oder Files.readAllLines, Files.write, und List::replaceAll nutzen, dann hat man nur 'nen Dreizeiler und spart sich den ganzen Aufwand, selber mit Streams zu arbeiten ;)
 

Thallius

Top Contributor
Ich sehe keinen Code der was schreibt. Du must halt erst die ganze Datei lesen, dann schliessen, dann den Text ersetzen und dann die Datei neu überschreiben.
 

Alex/89

Mitglied
Ich danke euch für eure Antworten.
Werde heute Abend mal an der Umsetzung arbeiten und hoffentlich einen funktionierenden Code präsentieren:)
LG Alex
 

Flown

Administrator
Mitarbeiter
Also wieso alles im Hauptspeicher halten? Eine zweite Datei aufmachen, modifizierte Daten reinschreiben, alle Handles auf Files schließen => erste Datei durch Zweite ersetzen.
 

Flown

Administrator
Mitarbeiter
Macht immer Sinn den Hauptspeicher nicht unnötig zu belasten, solange das Lesen und Schreiben nicht oft hintereinander gemacht wird.
 

Alex/89

Mitglied
Guten Abend zusammen

Java:
public class Versuch {
    
 public Versuch() {
  StringÄndern();
 }
 
 void StringÄndern() {
  String buf = null;
  String writeBack = null;
  
  try {
   BufferedReader input = new BufferedReader(new InputStreamReader(new FileInputStream("alt.txt")), 10000);
   FileOutputStream Fileoutput = new FileOutputStream("neu.txt");
   PrintStream ps = new PrintStream(Fileoutput);
   while (input.ready()) {
    buf = input.readLine();
    writeBack = buf.replaceAll("Birne", "SuperBirne");
    ps.println(writeBack);
   }
   input.close();
   ps.close();
   löschen();
   umbennen();
  } catch (Exception e) {
   System.out.println(e);
   System.out.println("Exception laden/schreiben!");
   System.exit(1);
  }
  return;
 }
 
 void löschen() {
  File alteTxt = new File("alt.txt");
  if (alteTxt.exists()) {
   alteTxt.delete();
  }
  System.out.println("alteTxt wurde gelöscht!");
 }
 
 void umbennen() throws IOException {
  File neueTxt = new File("neu.txt");
  neueTxt.renameTo(new File("alt.txt"));
 }
 
 public static void main(String[] args) {
  new Versuch();
 }
 
}

jetzt funktioniert alles wie es soll.

danke nochmal für eure Unterstützung:)
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
W String einer Textdatei in einzelne Stringobjekte pro Zeile aufteilen Java Basics - Anfänger-Themen 14
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
O Ich habe einen String und soll mit matches schauen, ob ein Buchstabe zu einer geraden ANzahl im String vorkommt, wie soll das gehen? Java Basics - Anfänger-Themen 7
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
S Gesamten String in einer Zeile ausgeben Java Basics - Anfänger-Themen 2
J String Problem kann das einer erklären Java Basics - Anfänger-Themen 13
J Aufruf einer Methode über einen String Java Basics - Anfänger-Themen 11
geekex Double zu String umwandeln in einer Methode Java Basics - Anfänger-Themen 28
J String splitten und weiter einarbeiten in einer Methode? Java Basics - Anfänger-Themen 11
W String in einer Zeile mit Alphabet füllen? Java Basics - Anfänger-Themen 8
OlafHD String in einer If-Anweisung Vergleichen Java Basics - Anfänger-Themen 2
A Folgende Nullen einer Kommazahl aus String entfernen Java Basics - Anfänger-Themen 3
S Datentypen Mit einer Methode String arrays geben Java Basics - Anfänger-Themen 9
B ja ja schon wieder einer mit einer public static void main(string[] args) Frage... Java Basics - Anfänger-Themen 8
A Variablen Übergeben des Inhalts einer Variable in einen String Java Basics - Anfänger-Themen 17
J Int Array und String in einer neuen Methoder übergeben Java Basics - Anfänger-Themen 7
G Teil einer String speichern Java Basics - Anfänger-Themen 4
D Name einer Variable als String nutzen Java Basics - Anfänger-Themen 13
J Einem String-Array in einer for-Schleife Strings zuweisen - Klappt nicht in einer for-Schleife Java Basics - Anfänger-Themen 5
L Aus einer String Variablen ein Objekt erstellen Java Basics - Anfänger-Themen 14
L Problem beim Einlesen einer Datei in einen String Java Basics - Anfänger-Themen 12
H string zu einer Gleitkommazahl zusammenführen Java Basics - Anfänger-Themen 20
B Wert einer String Variable an andere String Variable in anderer Klasse uebergeben Java Basics - Anfänger-Themen 5
F ComboBox sowie String in einer JTable Spalte Java Basics - Anfänger-Themen 2
T String aus einer ArrayList suchen Java Basics - Anfänger-Themen 7
D Datentypen TreeSet aus einer List<String[]> befüllen Java Basics - Anfänger-Themen 18
Burny91 FileReader / FileWriter / BufferedWriter An einer bestimmten Zeile String ersetzten Java Basics - Anfänger-Themen 2
vandread Kann in einer String-ArrayList keine Zeichen anhängen Java Basics - Anfänger-Themen 5
S Datentypen String mit fester Länge (Rückgabewert einer Methode) Java Basics - Anfänger-Themen 2
H String in Methode einer anderen Klasse übergeben Java Basics - Anfänger-Themen 5
Z Kann man String[] in einer ArrayList verwenden? Java Basics - Anfänger-Themen 3
Developer_X jede Zeile einer Datei mit einem String verketten Java Basics - Anfänger-Themen 16
A String[] array in vertikale Spalte einer JTable ausgeben? Java Basics - Anfänger-Themen 8
M String nach einer bestimmten Anzahl von Zeichen trennen Java Basics - Anfänger-Themen 2
H String an Ende einer text File anhängen Java Basics - Anfänger-Themen 2
T charAt funktion mit einer string zeichenkette nutzen. WIE? Java Basics - Anfänger-Themen 13
F Kann man den Namen einer Variable in ein String Konvertieren Java Basics - Anfänger-Themen 2
H String aus einer Klasse in die andere ! Java Basics - Anfänger-Themen 9
B Position einer Ziffer im String bestimmen Java Basics - Anfänger-Themen 4
D String/StringBuffer mit Zeichen einer Sorte füllen Java Basics - Anfänger-Themen 14
N Ausgabe des Inhalts eines String Arrays in einer ArrayList Java Basics - Anfänger-Themen 4
J String von einer an die andere Klasse übergeben? Java Basics - Anfänger-Themen 11
J Lesen einer Datei in einen String oder Char? Java Basics - Anfänger-Themen 3
T In einer HashMap einen String löschen Java Basics - Anfänger-Themen 20
A String Zeichen löschen in einer bestimmten Reihenfolge Java Basics - Anfänger-Themen 25
A String von einer Klasse in die ander zu bringen Java Basics - Anfänger-Themen 10
R in einem string nach einer zahl suchen und auslesen...... Java Basics - Anfänger-Themen 3
D String Groß/Kleinschreibung Ignorieren Java Basics - Anfänger-Themen 4
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
J Ähnlichen String in Liste finden Java Basics - Anfänger-Themen 6
Kartoffel_1 String transformation Java Basics - Anfänger-Themen 7
H String-Operation replace() - Zeichenkette verdoppeln Java Basics - Anfänger-Themen 2
K String analysieren Java Basics - Anfänger-Themen 27
Beowend String zu Date parsen Java Basics - Anfänger-Themen 1
Beowend String auf Satzzeichen überprüfen? Java Basics - Anfänger-Themen 6
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
I Sass Compiler und String erhalten? Java Basics - Anfänger-Themen 7
Avalon String in Double bzw. Währung konvertieren Java Basics - Anfänger-Themen 6
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
F Arraylist<String>Ein Wort pro Zeile Java Basics - Anfänger-Themen 6
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
N String überprüfen Java Basics - Anfänger-Themen 3
E String zerlegen aus args Java Basics - Anfänger-Themen 1
M Long-Typ in String-Änderung führt zu keinem Ergebnis bei großer Zahl Java Basics - Anfänger-Themen 11
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
J String Filter Java Basics - Anfänger-Themen 5
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Größter zusammenhängender Block gleicher Zeichen im String Java Basics - Anfänger-Themen 1
XWing Randomizer mit einem String Java Basics - Anfänger-Themen 2
D 2D Char Array into String Java Basics - Anfänger-Themen 2
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
I Zerlegen von String Java Basics - Anfänger-Themen 3
B Beliebiger String gegeben Suche Datum in String Java Basics - Anfänger-Themen 6
I String Java Basics - Anfänger-Themen 4
I API - zurückgegebener JSON String lesen und in Entity konvertieren Java Basics - Anfänger-Themen 2
H Zu langen String aufteilen - bequeme Methode? Java Basics - Anfänger-Themen 14
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
M Kommandozeilenparamter als EINEN String werten Java Basics - Anfänger-Themen 5
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
Substring in einem String finden Java Basics - Anfänger-Themen 13
BeginnerJava String mit vorgegebener Länge und Buchstaben erzeugen/ mit Leerstellen Java Basics - Anfänger-Themen 8
I Eindeutiger String mit maximaler Anzahl an Zeichen Java Basics - Anfänger-Themen 11
H Interface Wieso "List<String> list = new ArrayList<>[…]" Java Basics - Anfänger-Themen 4
JavaBeginner22 Integer in String umwandeln Java Basics - Anfänger-Themen 7
HolyFUT JSON String in Java Object schreiben - Anführungszeichen rauskriegen? Java Basics - Anfänger-Themen 17
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
HolyFUT Input/Output Leerzeichen aus String entfernen - klappt nicht! Java Basics - Anfänger-Themen 13
viktor1 Methoden Methode schreiben static void readText (String filename) {...} zu WordHistogramSample.java Java Basics - Anfänger-Themen 13
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
X Datentypen String.equals funktioniert nicht Java Basics - Anfänger-Themen 5
Alen123 String wiederholen mit Schleifen Java Basics - Anfänger-Themen 1
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben