ganze Zeilen in einem File mit .replace() ändern.

Patrick_1991

Mitglied
Hallo Leute,

Ich würde gerne mal wissen, wie ich Zeilen in einem File verändern kann.
Ich habe also meine int Variable zeileEins,
welche die erste Zeile meines Files beinhaltet, zB: 478

Ich möchte nun diese Zahl (Sie ist nicht konstant und ist auch immer unter 10.000) ändern.
Sie muss jedoch im File geändert werden:

Sie ist jz. im File auf dem Wert 478.
Und nach der Aktion soll IM File zB 12 oder 589 stehen.

Wie mache ich das ?:rtfm:

Mfg & Ein Dankeschön schon mal im Vorraus 🙂

Patrick
 
Was hast du dir denn bisher dazu programmiert?

Prinzipiell könntest du die File zeilenweise einlesen und dabei gleichzeitig wieder in eine temporäre Datei schreiben. Wenn du bei der konkreten Zeile bist, machst du eben deine Änderung. Hast du die Datei komplett durchgelesen, löschst du das Original und benennst die temporäre Datei in das Original um.
 
Vielen Danke erstmal,

aber das Problem ist das diese Aktion extrem oft und viele Male gleichzeitig vom System ausgeführt werden muss.

Dann ist das nicht das Richtige 😳

Mfg
Patrick

EDIT: Gibt es eine Möglichkeit, einfach nur einen Inhalt in ein File zu schreiben und diesen dann zu modifizieren ?
Mfg
 
Also hast du bisher noch keinen Code dazu fabriziert?

Ja, mein Vorschlag könnte dann etwas schwerfällig sein. Alternative, den Dateiinhalt nach Zeilen aufgetrennt im Speicher halten:
Code:
List<String>
 
Java:
        try{
          String toInt = "123456";
          int realInt = Integer.parseInt(toInt);
          Integer intAsObject = Integer.valueOf(toInt);
        } catch(NumberFormatException e){
          // falls toInt keinen int enthielt
          // besonders bei Benutzereingaben immer mit try-catch
        }
 
Okay vielen Dank,

Habe meine Methode (FileWriter, BufferedWriter) gefunden.

ABER:

Ich kann wenn ich versuche meine String Variable
Java:
String x = "881";
jetzt in das File
zu writen, steht nichts drinnen ?... Was mache ich falsch oder besser gesagt kann ich auch Int's in
Files reinschreiben mit FileWriter und BufferedWriter ?

Mfg
 
Vielleicht fehlt noch ein
Code:
BufferedWriter.flush()
wenn du alle Daten geschrieben hast?

Ansonsten, zeig mal etwas Code, es ist sonst schwer Diagnosen zu stellen 😉
 
Echt nochmal vielen Dank für die Hilfe,

Hier ist der Code Chef 🙂
Java:
package main;

import java.io.*;

public class Haupt {

    public static void main(String[] args) {
        try {
                FileReader fr = new FileReader("C:/Java_Daten/Chinese.txt");
                BufferedReader br = new BufferedReader(fr);
                
                int derSollInsFile = 548;
                // es gehen aber meines wissen nach nur Strings ?!
                br.write("EinenString"); // es gibt keine Methode für einen int)
                br.close();
}catch (Exception e) {
            System.out.println("Fehler: " + e.getMessage());
        }
    }
}

Was meinst Du genau mit .flush() ?

Mfg
 
Hehe, der
Code:
BufferedReader
den du benutzt hat auch gar keine Methode um überhaupt irgendwas zu schreiben, da gibt es nur
Code:
read()
.

Du hast also schon einen [JAPI]BufferedReader[/JAPI] mit dem du liest. Dann brauchst du noch einen BufferedWriter oder [JAPI]PrintWriter[/JAPI] mit dem du schreibst.

Am besten mal das Kapitel www.openbook.galileocomputing.de/javainsel/javainsel_15_001.html durcharbeiten. Da erhälst du einen guten Überblick, was so möglich ist.
 
Wenn ich das jz ned direkt aus NetBeans kopier habe sorry 😳:autsch:

Also der BufferedReader wird dann natürlich mit einem BufferedWriter getauscht.
Und der FileReader wird dann auch mit einem FileWriter getauscht sorry.

Hab mich verschrieben im Forum in NetBeans ist alles mit den Writer, trotzdem geht es nicht :rtfm:

Mfg
 

Zurück
Oben