vorletzte Zeile auswählen

butterfly84

Grünschnabel
Hallo,

wenn ich eine Textdatei mit readline() lese und auch die Zeilennummer habe, wie kann man an einer bestimmten Zeile an der man ist einfach eine Zeile zurück gehen, um da was zu verändern?

Mfg
 
Es gibt nen LineNumberReader. Dort kann man genau die Zeile angeben die man auslesen moechte. Zum aendern, kenn ich aber keinen anderen Weg, als den String zu aendern und ab dort die komplette Datei neu zu schreiben.

Java:
package org.kodejava.example.io;

import java.io.File;
import java.io.FileReader;
import java.io.LineNumberReader;

public class LineNumberReaderExample {
    public static void main(String[] args) throws Exception {               
        File file = null;
        FileReader fr = null;
        LineNumberReader lnr = null;

        try {
            // 
            // We'll read a file called student.csv that contains our
            // student information data.
            //
            file = new File("student.csv");
            
            // 
            // To create the FileReader we can pass in our student data 
            // file to the reader. Next we pass the reader into our 
            // LineNumberReader class.
            //
            fr = new FileReader(file);            
            lnr = new LineNumberReader(fr);
            
            // 
            // If we set the line number of the LineNumberReader here 
            // we'll got the line number start from the defined line 
            // number + 1
            //
            
            //lnr.setLineNumber(400);

            String line = "";            
            while ((line = lnr.readLine()) != null) {
                // 
                // We print out the student data and show what line 
                // is currently read by our program.
                //
                System.out.println("Line Number " + lnr.getLineNumber() + 
                        ": " + line);                
            }
        } finally {
            // 
            // Don't forget to close the stream when we finish reading 
            // the file.
            //
            if (fr != null) {
                fr.close();
            }
            if (lnr != null) {
                lnr.close();
            }
        }
    }
}
 
Vielen Dank MiMi,

ich weiss ja vorher nicht welche Zeilennummer es sein wird und wenn ich an einer bestimmten Stelle im Code getLineNumber()-1 mache um in die vorherige Zeile zu gelangen, wird nur die Zeilennummer verändert aber Inhalt ist immer noch der Teile, was ja auch logisch ist. Meine Frage ist, wie ich auch inhaltlich die Zeile zurücksetze

z.B. habe ich folgenden Text:

4 0 -1 0 0 16 20 0.0000 4 830 273 7110 847 0..*\001
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 4
8848 4316 8056 4316 8056 575 7060 575
2 1 0 1 -1 7 0 0 40 0.000 0 0 -1 0 0 4
12966 49 13266 349 12966 649 12966 49
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2

und wenn getLineNumber 3 ist, soll es in die zweite Zeile.Geht das****?
 
Hast du nicht die Moeglichkeit, dir die Zeilen zu merken und dann mit dem LineNumberReader die jeweilige Zeile zu holen?

Edit:
Oder du liest jede Zeile in ein Array, wobei der Arrayindex dann fuer die Zeile steht. So kannst du einfach die jeweilige Zeile aufrufen und aendern :)
 

Neue Beiträge

Zurück