Announcement

Collapse
No announcement yet.

wahlweises auslesen von daten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • wahlweises auslesen von daten

    hallo! bin noch recht unerfahren in java. nach der durcharbeit von "corejava 2 - grundlagen" hänge ich im letzten kap. ("streams u. dateien") an der frage: wie lese ich aus einer erfolgreich erzeugten textdatei mit adressbucheinträgen beliebige zeilen wieder aus?
    wäre sehr dankbar, wenn mir jemand helfen könnte!

  • #2
    Hi,

    schau mal in die doku der klasse "RandomAccessFile". das könnte was für dich sein. Du kannst damit eine textdatei öffnen und an beliebigen stellen auslesen. dazu bewegst du den "Cursor" in der datei an die gewünschte stelle (mit seek(position)) und liest dann mit read, readChar,readInt usw. Mit readLine() kannst du ganze Zeilen lesen.
    Bsp. um eine textdatei zeilenweise zu lesen:

    try{
    RandomAccessFile raf = new RandomAccessFile(dateiName,"r");
    long dateiZeiger = 0; //der cursor
    long dateiGroesse = raf.length();

    String inhalt = "";

    while ( dateiZeiger < dateiGroesse) {
    inhalt += raf.readLine() + "\n";//zeilenumbruch wird nicht mitgelesen
    dateiZeiger = raf.getFilePointer();
    }
    System.out.println(inhalt);

    }
    catch (IOException e) {
    System.out.println("error");
    }

    sollte funktionieren, habs nicht compiliert.

    Hoffe dir weitergeholfen zu haben
    Gruss Ric

    Comment


    • #3
      <p>Vielen Dank!</p>

      <p>deine gute erklärung dieses RandomAccessFile - Beispiels hilft mir weiter. Allerdings war ich zu "ungeduldig" und hatte schon eine andere Lösung gefunden, die für mein kleines Adressbuch-Programm wohl ausreicht:</p>

      <p>try {</p>

      <p>&nbsp;&nbsp;&nbsp;&nbsp;BufferedReader in = new BufferedReader(new FileReader("adressen.txt"));</p>

      <p>String adr = "";</p>

      <p>while((adr = in.readLine()) != null) {</p>


      <p>&nbsp;&nbsp;&nbsp;&nbsp;if(adr.startsWith(suchf eld.getText())) {</p>

      <p>&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(adr) ;</p>
      <p>&nbsp;&nbsp;&nbsp;&nbsp;text.append(adr.replace ('|','\n'));</p>

      <p>}</p>

      <p>}</p>

      <p>in.close();</p>
      <p>}</p>

      <p>Ich hoffe, dieser Code kommt einigermaßen geordnet an </p>

      <p>Gruss Uwe</p&gt

      Comment


      • #4
        Hallo!! Ich brauche Hilfe! Ich muss ein Class schreiben, das FileNameFilter implementiert und mit dessen Hilfe man beliebige Dateien mit aller moeglichen Filtern suchen und finden kann. Das Problem bereiten die Suchkreterien mit Filter wie xxx.xx*xx.com*.com(als Beispiel). Ich viel vermeiden, die falschen Dateien als ERGEBNIS
        zu bekommen und zu löschen. Ich brauche ein umfassenden Algorithmus zum Dateiensortieren. Alle meine Lösungen sind nicht vollkommen und bereiten gewisse Probleme. Ich werde sehr dankbar für jeder Hilfstipp

        Comment


        • #5
          Hallo Uri,<p>
          Dein Problem schaut in meinen Augen so aus, als wuerd es sich mit RegExpressions (in JDK1.4 sind sie wohl dabei, bei einem anderen JDK muesstest Du irgendwo nach einer RegExp-Erweiterung im Netz suchen) angewendet auf den Dateinamen recht einfach loesen lassen. Habe eben mal auf git.org geschaut, aber auf die Schnelle nichts gefunden. Vielleicht wissen andere im Forum weiter.<p>
          Gruss, Marc

          Comment

          Working...
          X