Text-Datei auslesen

  • Themenstarter Themenstarter kalissow
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
K

kalissow

Gast
Hallo ihr freaks,

ich bin dabei eine Text-Datei auszulesen.

Dafür habe ich diesen Code:
Code:
public class LeseDatei { 

  public static void main(String[] argv) { 

    String nameEingabedatei; 
    String zeile; 
    File eingabedatei; 
    FileReader fr; 
    BufferedReader br; 

    try { 
      nameEingabedatei = "Hallo.txt"; 
      System.out.println("Inhalt von "+nameEingabedatei); 
      eingabedatei = new File(nameEingabedatei); 
      fr = new FileReader(eingabedatei); 
      br = new BufferedReader(fr); 
      zeile=br.readLine(); 
      while ( zeile != null ) { 
        System.out.println(zeile);
        zeile=br.readLine();
        	
      } 
      br.close(); 
    } 
    catch (ArrayIndexOutOfBoundsException aioobe) { 
      System.out.println("Aufruf mit: java LeseDatei eingabedatei"); 
    } 
    catch (FileNotFoundException fnfe) { 
      System.out.println("Habe gefangen: "+fnfe); 
    } 
    catch (IOException ioe) { 
      System.out.println("Habe gefangen: "+ioe); 
    } 

  }  
 
}
Hier wird Zeilenweise die komplette Datei gelesen. Das ist auch gut so, denn ich möchte nicht nur die komplette Datei lesen können, sondern auch von einer bestimmten Zeile zu einer weiteren Zeile.
Beispiel: Nehmen wir an dies ist meinen Hallo.txt :

3.1.2. Verzweigungskomplexität:

Die Anzahl der Verzweigungen in diesem Algorithmus ist bei einer großen Anzahl von Komponenten sehr hoch.

Worst case: Im schlechten Fall kann das auswählen der neuen Komponente dazu führen, daß alle anderen Komponenten in der Struktur durch ihre Versionen ersetzt werden. Wenn N Komponenten durch ihre Versionen ersetzt werden müssen, wobei jede der Komponente mindestens zwei Versionen besitzt, gibt´s dazu N Mal die Verzweigungen passt oder nicht passt. Und nicht zu vergessen, daß der User dabei N-Mal die Versionen auswählen muss.
Beispiel: Eine Struktur mit 100 Elementen. Wir stoßen zufälligerweise auf den schlechten Fall  der User muss 100 Mal Versionen von Komponenten auswählen. Irgendwann wird er bestimmt nicht mehr wissen, wohin er überhaupt will.
4. Zusammenfassung:
Die Daten komplett dynamisch zu generieren werde ich auf jeden Fall ausschließen, egal wie wenig die Komponenten sind, weil die Struktur sehr oft gebaut wird, und Änderungen in der Struktur, wie neue Version einfügen, oder neue Komponenten einfügen nicht oft gemacht werden. Mit „oft“ meine ich mehrmals am Tag oder so.


wie soll ich nun meinen Code so ändern, daß ich ab der Zeile Worst case: anfange zu lesen, und bei der Zeile 4. Zusammenfassung: aufhöre zu lesen.

Danke voraus

Gruß
Kalissow
 
Du kannst lesen, bis eine Zeile mit "Worst Case:" anfängt, ab DANN erst das gelesene wirklich verarbeiten, und mit dem Verarbeiten aufhören, sobald du eine Zeile findest, die mit "4. Zusammenfassung:" anfängt.
 
außer mit RandomAccessFile oder ähnlichen Späßen kannst du nix überspringen,
aber du musst die ersten Zeilen ja nicht ausgeben,

fange einfach bei der n.ten Zeile mit System.out.println an,
das aufhören sollte leicht sein 😉

wenn dir schon allein schon sowas wie Zeilenindexe und if-Bedingungen Probleme machen,
dann übe das ganze lieber an einem einfachen String[] "a", "b", "c" ..

damit würde der ganze Datei-Code (nur zum testen) wegfallen, vielleicht siehst du dann klarer..
 
Danke für eure Antwort.

Marco13, was du geschrieben hast, ist genau das, was ich die ganze Zeit versuche zu machen. Versuch du mal zu codieren. Ich kriege es gerade nicht hin.

Kalissow
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben