tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
605
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Maddili Maddili ist offline Mitglied Silber
    Registriert seit
    Feb 2010
    Beiträge
    65
    Hi liebe Community,

    ich hänge an folgendem Problem:

    Ich möchte eine Textdatei einlesen, diese editieren und wieder abspeichern. (Evtl auch unter einem anderem Dateinamen)

    zum verdeutlichen:

    Datei: abc.txt (z.B. unter C:\)

    Die datei enthält folgenden Text:

    ***************
    a
    a
    a
    b
    b
    b
    c
    c
    c
    ***************

    Jetz möchte ich z.B. vor dem ersten "c" einen Text einfügen. z.B.:

    ***************
    a
    a
    a
    b
    b
    b
    Ich hasse Java!
    c
    c
    c
    ***************

    Jetz mal mein Gedankengut, wie ich mir das vorgestellt habe:
    1. Die Datei mit nem FileReader einlesen (Soll später noch erweitert werden, dass ich über ne GUI die Datei auswählen kann. Ist aber atm noch nicht erforderlich)
    2. Mit einem BufferedReader readline() zeilenweise den Text der Datei einlesen
    3. Den Inhalt mit StringBuffer speichern (readline() bis null -> StringBuffer append)
    4. Und dann

    Hier habe ich viel Zeug nachgelesen bzw. auch ausprobiert. Allerdings komme ich nicht zu meinem gewünschten Ergebnis. Entweder wird der Text überschrieben, bis zu c gelöscht, der "ich hasse Java"-String in nem Loop bis ins unendliche geschrieben usw.

    Also ich wäre für jede Hilfe / Anregung dankbar, wie ich Schritt 4., 5., und evtl 6.,7.,... abgehen kann.

    Danke
    Maddin
     

  2. #2
    Maddili Maddili ist offline Mitglied Silber
    Registriert seit
    Feb 2010
    Beiträge
    65
    Hmpf, habs selbst hinbekommen. War nicht wirklich schwer (hat aber laaaaaange gedauert...)

    Wens interessiert, hier mein Code:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    
    public class Main {
     
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            
            
            
            try {
                
                File testFile = new File("D:/abc2.txt");
                FileWriter fw = new FileWriter(testFile);
                BufferedWriter br = new BufferedWriter(fw);
                
                
                BufferedReader in = new BufferedReader(new FileReader("D:/abc.txt"));
                String zeile = null;
                String s2="c";
                while ((zeile = in.readLine()) != null) {
                    System.out.println("Gelesene Zeile: " + zeile); // Test in der Console
                    br.write(zeile);
                    br.newLine();
                    
                    if(zeile.equals(s2)){
                        System.out.println("hmmm, wusst ichs doch"); // Test in der Console
                        br.write("hahahahahhaha");
                        br.newLine();
     
                    }
                }
                br.close();
                
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
     
    }

    Bitte den Thread vorerst nicht schliessen. Da ich versuche das ganze in ne GUI einzubinden... ..und da werden bestimmt noch Fragen kommen!!

    mfg
    Maddin
     

  3. #3
    fassy fassy ist offline Mitglied Bronze
    Registriert seit
    Jan 2010
    Beiträge
    42
    Du würdest es dir leichter machen wenn du die Zeilen erstmal in eine Collection speicherst.

    Dann kannst du später jederzeit Zeilen ändern, einfügen oder entfernen:

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
                String path = "C:/test1.txt";
                BufferedReader in = new BufferedReader(new FileReader(path));
                List<String> content = new ArrayList<String>();
                String zeile = null;
                while ((zeile = in.readLine()) != null) {
                    content.add(zeile);
                }
                //vor dem schreiben den lese stream schließen!
                in.close();
     
                // index der ersten Zeile "c"
                int firstCLineNumber = content.indexOf("c");
                
                //einfügen
                content.add(firstCLineNumber, "hahahaha");
     
                
                File testFile = new File(path);
                FileWriter fw = new FileWriter(testFile);
                BufferedWriter br = new BufferedWriter(fw);
                for(String s : content){
                    br.write(s);
                    br.newLine();
                }
                br.close();
     

Ähnliche Themen

  1. *.txt Datei editieren?!
    Von stockhausen im Forum Java
    Antworten: 2
    Letzter Beitrag: 25.09.10, 09:20
  2. XML Datei in Formular editieren
    Von FritzTheCat im Forum PHP
    Antworten: 0
    Letzter Beitrag: 09.10.07, 13:16
  3. XML Datei mit PHP editieren
    Von tetsuo666 im Forum PHP
    Antworten: 6
    Letzter Beitrag: 11.07.07, 11:25
  4. PHP datei editieren
    Von supser im Forum PHP
    Antworten: 2
    Letzter Beitrag: 18.06.07, 00:22
  5. Datei auf FTP-Server editieren
    Von XL-Reaper im Forum PHP
    Antworten: 0
    Letzter Beitrag: 28.06.04, 15:50