Bestimmte Zeile aus einer Datei auslesen

Nemesys88

Bekanntes Mitglied
Guten Morgen!

Folgende Funktion:

Java:
   public static void search(String begriff)
   {
      Reader fr = null;
      int posi = 0;
      boolean gefunden = false;
      
      for (int k=0;k<10;k++)
      {
         
         if (Indexarray[k].Ordnungsbegriff.equals(begriff))
         {
            posi = Indexarray[k].position;
            
            try
            {
               gefunden = true;
               
               String zeile="";
               
               fr = new FileReader("Buch.txt");
               BufferedReader br = new BufferedReader(fr);
//               RandomAccessFile file = new RandomAccessFile("Buch.txt", "rw" );
               
               while( (zeile = br.readLine()) != null )  // liest zeilenweise aus Datei    
               {
                 if (zeile.contains(begriff))
                  System.out.println(zeile);              
               }
       
               br.close();
            }
            catch ( IOException e ) {
               System.err.println( "Fehler beim Lesen der Datei!" );
               }
            finally {
               try { fr.close(); } catch ( Exception e ) { }
            }   
         }
       }

      if (gefunden == false)
      {
         System.out.println("Kein Buch zu diesem Ordnungsbegriff vorhanden!");
      }
   }

Die while-Schleife geht die .txt - Datei jetzt Zeile für Zeile durch.

Ich will aber eigentlich folgendes machen:

"gib mir Zeile(posi) aus" also zb Zeile2 der txt-datei ausgeben.

Wie geht das bitte?

mfg
 
Zuletzt bearbeitet:

Kaibear

Aktives Mitglied
Ich weiß nicht ob es dafür einen Workaround in den Java-Libraries gibt.

Aus einer Text-Datei müsste es ohne weiteres möglich sein, dass der readLine() durchführt und du nur zählen musst, wie oft das Programm das bis zum Ende macht.
"Mach zwei mal ReadLine() und danach mach eine Ausgabe des 3. ReadLine()." Und schon hast du die dritte Zeile ausgegeben. Ich halte zumindest ReadLine() für die Zentrale Methode hierbei.

Dann kannst du eine eigene Methode schreiben, bei der du nen Int-Wert eingibst und dieser dann den Durchlauf der Schleifen beeinflusst.
 
Zuletzt bearbeitet:

dehlen

Bekanntes Mitglied
Ich würde einfach in der while-Schleife eine index Variable zur Hilfe nehmen und prüfen, ob der Index == der Zeile ist die du ausgeben willst.
 

Nemesys88

Bekanntes Mitglied
Danke euch!

Funktioniert Beides.. macht glaub ich auch keinen großen Unterschied, wie ich's jetzt mache:

Lösung1:
Java:
               for (int i=0;i<=posi;i++)
               {
                  zeile = br.readLine();
               }
               
               System.out.println(zeile);

Lösung2:
Java:
               int i = 0;
               
               while( (zeile = br.readLine()) != null )  // liest zeilenweise aus Datei    
               {                
                    if (i==posi)
                    {
                       System.out.println(zeile);  
                    }
                    i++;
               }

:D
 

Nemesys88

Bekanntes Mitglied
Weil ich

Java:
struct Buch
{
char Autor[21];
char Titel[41];
char Verlagsname[21];
int Erscheinungsjahr;
char Erscheinungsort[41];
char ISBN[15];
};

in Java so nicht anlegen kann hab ich die Attribute erstmal so angelegt:

Java:
protected String Autor;
   protected String Titel;
   protected String Verlagsname;
   protected int Erscheinungsjahr;
   protected String Erscheinungsort;
   protected String ISBN;

Würd das aber schon gerne jetzt ändern.

Wie kann ich dem String Titel eine feste Länge von 21 Zeichen geben ?

Hab jetzt viel gegoogled, aber nur komplizierte Lösungen gefunden, die alle nicht wirklich funktioniert haben....
 

VfL_Freak

Top Contributor
Moin,

Weil ich
Java:
struct Buch
{
char Autor[21];
char Titel[41];
char Verlagsname[21];
int Erscheinungsjahr;
char Erscheinungsort[41];
char ISBN[15];
};
in Java so nicht anlegen kann
Du könntest Dir allerdings eine eigene Klasse bauen, die das nachbildet!

Java:
protected String Autor;
   protected String Titel;
   protected String Verlagsname;
   protected int Erscheinungsjahr;
   protected String Erscheinungsort;
   protected String ISBN;

Wie kann ich dem String Titel eine feste Länge von 21 Zeichen geben ?
[/code]

bspw. so:
Java:
char[] Titel = new char[41];

Gruß
Klaus
 

dehlen

Bekanntes Mitglied
Kommt drauf an. Sollen nur Strings mit 21 Zeichen akzeptiert werden, oder sollen zu lange abgeschnitten und zu kurze mit leerzeichen aufgefüllt werden ?
 

Nemesys88

Bekanntes Mitglied
Mit Leerzeichen auffüllen wäre toll.

Ich leg einen Datensatz ja zb so an:

Java:
      Bucharray[0].setAutor("Schröder");
      Bucharray[0].setErscheinungsjahr(1994);
      Bucharray[0].setErscheinungsort("Texas");
      Bucharray[0].setISBN("12345");
      Bucharray[0].setTitel("Englisch");
      Bucharray[0].setVerlagsname("Bertelsfrau");

Es wäre gut wenn "Schröder" dann zu "Schröder (aufgefüllt mit Leerzeichen) " wird!

Der ganze Sinn dahinter ist, dass ich aus einer Zeile dann in folgender Form herauslesen kann:

Java:
Ordnungsbegriff = br.readLine().substring(22,63);
um zum Beispiel den Titel zu bekommen!
 
Zuletzt bearbeitet:

dehlen

Bekanntes Mitglied
Hm wäre es nicht besser du schreibst dir ein eigenes Object das du dann in eine zb ArrayList packst und diese dann per Serializable abspeicherst ? Falls du über die Textdatei gehen willst, wäre es zumindest sinnvoller die Textdatei anders aufzubauen zb:
Titel:Schröder
....
und dann könntest du immer nach ":" trennen. Oder hast du keinen Einfluss darauf, wie die txt Datei aussieht ? Deinen Ansatz halte ich aufgrund von mehreren Problem für nicht wirklich sinnvoll... Was passiert wenn der Titel mal länger als 21 Zeichen ist ?
 

Nemesys88

Bekanntes Mitglied
Ja die Begründung versteh ich, aber das passiert in diesem Fall nicht.
Der Titel soll eine Länge von
Java:
char Titel[41];
haben und ich selber lege ja 10 Testdatensätze an, wo der Titel in keinem Fall länger als 10-15 Zeichen ist.

Wenn ich die Datei wieder einlese krieg ich solche Zeilen raus:

Schröder Mathe 1994 Köln 12345 Bertelsfrau (zum Beispiel)

(das ist autor titel erscheinungsjahr ort isbn verlag)

und jetzt will ich Schröder einfach mit Leerzeichen auffüllen bis zu 21 Stellen, damit ich um an "Mathe" zu kommen substring (22,63) verwenden kann (weil der titel ja 41 zeichen haben kann max.)
 
Zuletzt bearbeitet:

Nemesys88

Bekanntes Mitglied
Ok hab den Setter einfach angepasst, funktioniert!

Java:
  public void setAutor(String _Autor)
  {
      this.Autor = _Autor;
      while(this.Autor.length() < 21) {
         this.Autor = this.Autor + " ";
         }
  }

Ich setz hier mal ein "erledigt", glaub mehrere Fragen zu verschiedenen Themen in einem Thread sind nicht so gut... :D

Dankeschön!! ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Bestimmte Zeile aus einer .txt-Datei auslesen? Java Basics - Anfänger-Themen 10
B Wie eine bestimmte Zeile einer Txt-Datei lesen ? Java Basics - Anfänger-Themen 5
B Ausgabe in bestimmte Zeile einer html Datei Java Basics - Anfänger-Themen 12
A CSV datei eine Bestimmte Zeile ansprechen Java Basics - Anfänger-Themen 1
Ananaskirsche Input/Output Bestimmte Zeile aus Datei einlesen Java Basics - Anfänger-Themen 4
D Bestimmte Zeile aus TXT Datei ausgeben Java Basics - Anfänger-Themen 4
Kenan89 Bestimmte Zeile in txt-Datei ersetzen Java Basics - Anfänger-Themen 4
D Input/Output bestimmte Zeile auslesen Java Basics - Anfänger-Themen 3
G Bestimmte Zeile aus CSV ausgeben Java Basics - Anfänger-Themen 14
Developer_X Durch int Bestimmte Zeile überschreiben Java Basics - Anfänger-Themen 16
Developer_X Bestimmte Zeile aus TextDocument lesen Java Basics - Anfänger-Themen 2
M Bestimmte zeile aus .txt einlesen Java Basics - Anfänger-Themen 6
2 Bestimmte Zeile Farblich hervorheben Java Basics - Anfänger-Themen 7
P aus Textarea bestimmte Zeile auslesen Java Basics - Anfänger-Themen 3
G nur bestimmte zeile aus textdatei auslesen Java Basics - Anfänger-Themen 2
B Alle Zahlen finden, die 3 bestimmte Ziffern enthalten? Java Basics - Anfänger-Themen 9
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
K loop pausieren für eine bestimmte Anzahl? Java Basics - Anfänger-Themen 1
Cassy3 Binäre Bäume Rekursiv durchlaufen und bestimmte Elemente Zählen Java Basics - Anfänger-Themen 6
Schniffi Nur bestimmte Bilder aus einem Array auf Image Button anzeigen lassen Java Basics - Anfänger-Themen 3
W Bestimmte Zahlen bei Math.random ausschließen? Java Basics - Anfänger-Themen 31
J Bestimmte parameter aus Jsonfile auslesen Java Basics - Anfänger-Themen 15
HighLife Bestimmte Werte aus Array zählen Java Basics - Anfänger-Themen 15
T Bestimmte Zahlen ausgeben mit einer whilfe Schleife Java Basics - Anfänger-Themen 21
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
B Neue Liste erstellen, wenn Objekte bestimmte Referenz hat / Gruppierung von Einträgen Java Basics - Anfänger-Themen 12
B Nur eine bestimmte Anzahl an Arrays ausgeben Java Basics - Anfänger-Themen 9
M Regex für bestimmte Wörter bzw. bestimmte Zeichen erstellen Java Basics - Anfänger-Themen 5
B Von Array nur eine bestimmte Anzahl bekommen Java Basics - Anfänger-Themen 3
J Datei auslesen (nur bestimmte Stellen) Java Basics - Anfänger-Themen 2
L Nur Bestimmte Werte aus einem Array in ein anderes Speichern Java Basics - Anfänger-Themen 11
B Denkanstoß benötigt: Emails an bestimmte Emailadresse schicken Java Basics - Anfänger-Themen 6
U Mehrfacheingabe auf bestimmte Parameter prüfen Java Basics - Anfänger-Themen 8
L String auf bestimmte zeichen untersuchen Java Basics - Anfänger-Themen 9
L Bestimmte Werte eines Arrays ausgeben. Java Basics - Anfänger-Themen 3
P Input/Output Bestimmte Anzahl von Werten in einem Array an Methode übergeben Java Basics - Anfänger-Themen 2
Henri Bestimmte Werte eine XML-Datei ausgeben. Java Basics - Anfänger-Themen 8
M ComboBox bestimmte Elemente disablen/ausgrauen Java Basics - Anfänger-Themen 3
S JButton soll für bestimmte Zeit verschwinden Java Basics - Anfänger-Themen 5
E Datei einlesen und bestimmte Wörter ausgeben Java Basics - Anfänger-Themen 2
A Threads Threads bestimmte Aufgaben zuweisen... Java Basics - Anfänger-Themen 3
D Input/Output Buchstaben als bestimmte Zahl erkennen Java Basics - Anfänger-Themen 4
S Welche Datenstruktur ist die optimalste um Funktionen fuer bestimmte Wertebereiche abzurufen..? Java Basics - Anfänger-Themen 5
N Bestimmte Zeichen eines Strings umwandeln Java Basics - Anfänger-Themen 4
K Eine bestimmte Zeit, eine Schleife laufen lassen. Java Basics - Anfänger-Themen 4
W char-Array auf bestimmte Zeichen prüfen Java Basics - Anfänger-Themen 10
C Array kopieren und nur bestimmte Werte speichern Java Basics - Anfänger-Themen 6
D Bestimmte Werte von Objekten aus einer ArrayList in eine andere ArrayList kopieren Java Basics - Anfänger-Themen 14
N Bestimmte Inhalte aus Datei lesen Java Basics - Anfänger-Themen 11
B Best Practice Bestimmte Zahl auslesen und in Variable speichern Java Basics - Anfänger-Themen 3
I Int Array, Zahl an bestimmte position setzten Java Basics - Anfänger-Themen 2
C [Bukkit Plugin] Blöcke eine bestimmte route entlang fliegen Java Basics - Anfänger-Themen 3
A Button in eine bestimmte Spalte platzieren Java Basics - Anfänger-Themen 4
A Eine Datei Lesen und bestimmte Position überschreiben Java Basics - Anfänger-Themen 2
M Bestimmte Zeichen auslesen Java Basics - Anfänger-Themen 2
G bestimmte dateiendungen in jtree rausfiltern Java Basics - Anfänger-Themen 7
W bestimmte Objekte in ArrayList auslesen Java Basics - Anfänger-Themen 8
G JTextArea: nur bestimmte Zeilen anders formatieren Java Basics - Anfänger-Themen 7
B Input/Output bestimmte Zeilen in .txt Dateinen überschreiben Java Basics - Anfänger-Themen 20
J Bestimmte Anzahl Zeichen aneinander fügen Java Basics - Anfänger-Themen 9
C Bestimmte Informationen von Webseite suchen Java Basics - Anfänger-Themen 13
B Nur bestimmte Klasse ausführen Java Basics - Anfänger-Themen 6
D BufferedInputStream nur bestimmte Zeichen Java Basics - Anfänger-Themen 11
B Bestimmte Ziffer Java Basics - Anfänger-Themen 27
B Input/Output In Datei an eine bestimmte Stelle schreiben Java Basics - Anfänger-Themen 37
S Bestimmte Objekte aus Collections anwählen/herausbekommen Java Basics - Anfänger-Themen 8
I Bestimmte Objekte einer Liste hinzufügen Java Basics - Anfänger-Themen 16
R Bestimmte Stellen eines BigInteger Java Basics - Anfänger-Themen 7
S Collections Aus Set<Object> bestimmte Typen entfernen Java Basics - Anfänger-Themen 3
S Bestimmte Methode von unbestimmter Datei Java Basics - Anfänger-Themen 6
V Bestimmte Stellen aus .txt Datei auslesen Java Basics - Anfänger-Themen 11
B bestimmte klammern im string ersetzten Java Basics - Anfänger-Themen 17
Binary.Coder JTable bzw. Tabelle in bestimmte Form überführen Java Basics - Anfänger-Themen 5
B Bestimmte Werte aus einem String entnehmen Java Basics - Anfänger-Themen 3
0 Grafik eine bestimmte Strecke laufen lassen Java Basics - Anfänger-Themen 6
X im Verzeichnissbaum recursiv nur bestimmte Dateien finden Java Basics - Anfänger-Themen 7
M Aus String bestimmte Inhalte auslesen Java Basics - Anfänger-Themen 8
M Reaktion auf bestimmte Zeit Java Basics - Anfänger-Themen 2
2 Bestimmte Anzahl von Bytes lesen und als string ausgeben? Java Basics - Anfänger-Themen 3
N Bestimmte Zeichen aus Strings zählen Java Basics - Anfänger-Themen 11
P Bestimmte Zeilen einer Datei ermitteln ? Java Basics - Anfänger-Themen 30
StrikeTom Bestimmte stelle in string herausfiltern Java Basics - Anfänger-Themen 7
M Float auf bestimmte Nachkommazahl runden Java Basics - Anfänger-Themen 3
E Bild eine bestimmte Anzahl blinken lassen Java Basics - Anfänger-Themen 3
B array bestimmte summe berechnen Java Basics - Anfänger-Themen 4
Luk10 Zufallszahl "ohne" eine bestimmte Zahl(en) Java Basics - Anfänger-Themen 8
S OOP Wie bei Spiel "17+4" eine Karte an bestimmte Position hinzufügen Java Basics - Anfänger-Themen 13
B OOP String auf bestimmte Zeichen abfragen Java Basics - Anfänger-Themen 4
S Bestimmte Elemente einer ArrayList löschen Java Basics - Anfänger-Themen 3
S Double bis bestimmte Nachkommzahl vergleichen (ohne zusätzliche Libs) Java Basics - Anfänger-Themen 12
Ollek Bestimmte Zeilen aus einer HTML Datei lesen Java Basics - Anfänger-Themen 8
N Text an bestimmte Stelle eines Dokuments schreiben Java Basics - Anfänger-Themen 6
Assassin Nur bestimmte Daten aus txt auslesen... Java Basics - Anfänger-Themen 12
V Nur bestimmte Werte zulassen Java Basics - Anfänger-Themen 2
Q Nach Stringvorgabe bestimmte funktionen ausführen Java Basics - Anfänger-Themen 3
G Bestimmte Ebene eines Baumes rekursiv ausgeben Java Basics - Anfänger-Themen 49
I bestimmte Zahlen markieren.helppp. Java Basics - Anfänger-Themen 17
G Bestimmte Position im array auslesen Java Basics - Anfänger-Themen 8
H bestimmte objekte in ArrayList löschen? Java Basics - Anfänger-Themen 7
P Hilfe für JComboBox, bmp einbinden/bestimmte punkte auf bmp Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben