FileReader Frage

Flipp

Mitglied
Hallo liebes Java Forum, ich habe eine Frage zum Thema Files auslesen. Ich habe ein kleines Programm geschrieben, dass zwei verschiedene Files auslesen soll. Die erste File sieht etwa so aus:

Zeit : ID:
23,35456 257
33,45656 345
...

Zeit und ID sollen ausgelesen und zugeordnet werden und die ID einmal als hex und einmal als Dezimalzahl ausgegeben werden. Dieser Teil funktioniert soweit. ein zweites File "Text2" soll ausgelesen werden. Ich habe hierfür eine Methode "liefereNachrichten" geschrieben, die die ID der ersten Methode überliefert bekommt. Die zweite File sieht in etwa so aus:

Botschaftsnummer 245
Nachricht: Hürdenlauf //hier steht weiterer Text der nicht relevant ist
Nachricht: Hochsprung
Nachricht: ...

Botschaftsnummer 344
Nachricht: ...
Nachricht: ...

wenn die Botschaftsnummer mit der übergebenen id übereinstimmt soll jeweils das zweite Wort hinter Nachricht zurückgeliefert werden, bis die nächste Botschaft kommt. Die Nachrichten des zweiten Files sollen der ID des ersten Files zugeordnet werden.
Hier mal mein Versuch soweit:

Java:
package JavaFilesforStarters;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.StringTokenizer;

public class JavaFileReader 
{
  public static void main(String[] args) {
    String line;
    try {
        BufferedReader br;
        FileReader fr = new FileReader ("E:/EinText.txt"); //Zugriff auf das File EinText
        br = new BufferedReader (fr);
        while ((line = br.readLine()) != null )   
        {
            
            if (!line.contains("Zeit"))   //erste Zeile soll weggelassen werden
            {
                String sZeit;
                String sID;
                StringTokenizer st = new StringTokenizer(line);
                sZeit = st.nextToken();
                sID = st.nextToken();
                
                int iZahl = Integer.parseInt(sID, 16);  //parst die Hexstringzahl in eine Dezimalzahl
                System.out.println("Nachricht: " +sID+ " Dezimal: "+iZahl+   " Gesendet: " +sZeit);
                System.out.println();
                System.out.println("Inhalt: " +liefereNachrichten(sID));  //Hexstringzahl wird übergeben
                System.out.println();
            }    
                
        }
          //br.close();               Close hier richtig?
    }
    catch (FileNotFoundException e)
    {
        e.printStackTrace();
    }
    catch (IOException e)
    {
        e.printStackTrace();
    }
}
  public static String liefereNachrichten (String sID)
  {
      String line2="";
      try
         {
             BufferedReader br2;
             FileReader fr = new FileReader ("E:/EinText2.txt");
             br2 = new BufferedReader (fr);
             
             while ((line2 = br2.readLine()) != null)
             {
                 if(line2.contains("Botschaft"))  //Wenn line2 das Wort Botschaft enthält soll 
                {                                         //in den Folgezeilen das zweite Wort zurückgeliefert    
                                                           //werden
                 StringTokenizer st = new StringTokenizer (line2);
                 String ID = st.nextToken();
                 ID = st.nextToken();     //ID wird zweites Wort zugewiesen daher 2 mal next Token
                   if (sID.equals(ID))       //Wenn die übergebene sID mit der ID übereinstimmt
                   {
                    line2 = br2.readLine();
                    line2 = br2.readLine();  //die übernächste Zeile soll ausgelesen werden
                                             //jeweils das zweite Wort soll ausgelesen werden bis wieder eine  Zeile kommt, die mit "Botschaft" beginnt
                   }
                }
             }
             
         }
         catch (FileNotFoundException e)
         {
             e.printStackTrace();
         }
         catch (IOException e)
         {
             e.printStackTrace();
         }
    
         return (line2);     //hier gibt line2 nur "null" zurück, da der Inhalt von line2 in der Schleife hier nicht mehr gilt, 
                             //wenn ich das return aber in die while Schleife verschiebe, bringt die Methode einen Fehler
  }                          //man müsse ein "Return Statement" adden.
}

Ich bin für Verbesserungsvorschläge dankbar.
 

truesoul

Top Contributor
Morgen,

ein paar Dinge die noch einbauen solltest, das close() ( wie schon Volvagia erwähnte ).
Java:
 catch( IOException eo ){

} finally {

            try {
                if(bufferedreader != null)
                    bufferedreader.close();
                
            } catch(IOException eo) { }

        }

Und es wäre sicherlich besser, wenn du die beiden Dateien erst einliest und in eine ArrayList( z.B ) packst. Dann kannst du mit den ArrayList arbeiten und liest nicht bei jeden Schleifendurchlauf die Text2 Datei ein.

Gab es eine konkrete frage von dir?
 

Flipp

Mitglied
Hallo, vielen Dank euch beiden, hat mir schon weitergeholfen, in Zukunft werde ich das close in einem finally anhängen.
Naja, meine Frage bezog sich unter anderem, warum der Compiler kein Return in der Schleife akzeptiert. Wie ich das jetzt sehe, brauche ich für meine Methode "liefereNachrichten" zwei return, eins in der Schleife (mit der tatsächlich zu liefernden Info) und eines am Ende (return null), um den Compiler zufrieden zu stellen.

Es ging mir halt auch darum, wie ich am besten wahlfrei auf Wörter oder Zahlen in einem mehrzeiligem File zugreifen kann.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Frage zur Klasse FileReader Java Basics - Anfänger-Themen 6
Hamstinator Frage zu BufferedReader/FileReader Java Basics - Anfänger-Themen 4
D FileWriter / FileReader Problem Java Basics - Anfänger-Themen 10
S Mit FileReader lesen, in ArrayList speichern Java Basics - Anfänger-Themen 4
T filereader , file aus programm einlesen Java Basics - Anfänger-Themen 12
W FileReader - Bitte um Erklärung Java Basics - Anfänger-Themen 7
L FileReader Java Basics - Anfänger-Themen 7
L FileReader Java Basics - Anfänger-Themen 2
D Hilfe bei FileReader und BufferedReader Java Basics - Anfänger-Themen 2
Y Datei mit relativem Dateipfad per FileReader aus .JAR heraus auslesen Java Basics - Anfänger-Themen 4
A FileReader Problem Java Basics - Anfänger-Themen 14
D JFileChooser & FileReader Java Basics - Anfänger-Themen 4
L Input/Output FileReader Pfadangabe Java Basics - Anfänger-Themen 7
L While-Schleife und filereader Java Basics - Anfänger-Themen 5
L FileReader und Filewriter Java Basics - Anfänger-Themen 4
F wo datei für filereader ablegen? Java Basics - Anfänger-Themen 11
M FileReader Zeilenangabe Java Basics - Anfänger-Themen 22
L RandomAcessFile getFilePointer in normalen FileReader Java Basics - Anfänger-Themen 4
H OOP FileReader Einleseergebnis Java Basics - Anfänger-Themen 5
R Von wo nimmt der FileReader seine daten Java Basics - Anfänger-Themen 7
J fileReader: wird dateipfad benötigt? Java Basics - Anfänger-Themen 8
Burny91 FileReader und Writer gleichzeitg nutzen Java Basics - Anfänger-Themen 2
Burny91 FileReader / FileWriter / BufferedWriter An einer bestimmten Zeile String ersetzten Java Basics - Anfänger-Themen 2
G Character-orientierte File-Streams mit der Klasse FileReader Java Basics - Anfänger-Themen 5
F FileReader Methode Read() int? Java Basics - Anfänger-Themen 2
calzone FileReader, lesen ohne die Datei zu überschreiben? Java Basics - Anfänger-Themen 3
K FileReader Systempfad Mac Java Basics - Anfänger-Themen 11
hdi FileReader / BufferedReader langsam? Java Basics - Anfänger-Themen 3
A Filereader - An den Anfang des File springen Java Basics - Anfänger-Themen 2
N Pfad und FileReader? Java Basics - Anfänger-Themen 2
S Filereader funktioniert nicht! Fehlersuche Java Basics - Anfänger-Themen 9
K Problem mit .toString und FileReader Java Basics - Anfänger-Themen 2
G filereader Java Basics - Anfänger-Themen 5
G zusätzliche "" bei Pfadangabe z.B. bei FileReader Java Basics - Anfänger-Themen 2
B Problem mit Filereader und filewriter Java Basics - Anfänger-Themen 20
H IOException bei FileReader Java Basics - Anfänger-Themen 3
P BufferedReader / FileReader Key und Values Java Basics - Anfänger-Themen 7
K FileReader BufferedReader & Arrays Java Basics - Anfänger-Themen 14
D Wie funktionieren FileReader Java Basics - Anfänger-Themen 6
M FileReader.read(char[]) - Größe des Arrays? Java Basics - Anfänger-Themen 4
R FileInputStream.read() != FileReader.read(). Pls Help Java Basics - Anfänger-Themen 5
S FileReader-Problem Java Basics - Anfänger-Themen 2
G Textdatei auslesen - Text anfügen - FileReader Java Basics - Anfänger-Themen 18
G FileReader Java Basics - Anfänger-Themen 10
P FileReader Java Basics - Anfänger-Themen 2
V filereader soll aus config.txt pfade lesen Java Basics - Anfänger-Themen 6
Zrebna Frage zu Test-Driven Development (TDD) Java Basics - Anfänger-Themen 3
I Frage Thymeleaf -> Fehler ignorieren und mit "" ersetzen? Java Basics - Anfänger-Themen 15
I Frage Thymeleaf -> Prefix / Suffix ändern? Java Basics - Anfänger-Themen 11
D Rekursions Probleme / frage Java Basics - Anfänger-Themen 4
T Frage zu Parse Java Basics - Anfänger-Themen 2
H Frage an die Profis Java Basics - Anfänger-Themen 4
J Eine konzeptionelle Frage zu OOP Java Basics - Anfänger-Themen 3
P Frage zu Rekursion und Backtracking Java Basics - Anfänger-Themen 2
H Frage zur Ausgabe Java Basics - Anfänger-Themen 4
H Frage zu arithmetischen Operationen Java Basics - Anfänger-Themen 20
F Kurze Frage zu replace() Java Basics - Anfänger-Themen 19
JavaSchmecktLecker Polymorphie Frage zur Methodenüberschreibung Java Basics - Anfänger-Themen 21
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
B Erste Schritte Frage zu Instanzierung und Referenzen Java Basics - Anfänger-Themen 8
DoubleM Runtime.getRuntime().exec Frage Java Basics - Anfänger-Themen 2
J Eine theoretische Frage zur Praxis - JPanel oder Canvas Java Basics - Anfänger-Themen 5
O Frage: Formaler Typbezeichner? Java Basics - Anfänger-Themen 3
I BlueJ Queue Frage für Klausur Java Basics - Anfänger-Themen 2
N Verständnis Frage zu Variablen Java Basics - Anfänger-Themen 3
N Spezielle frage zum Comparator Java Basics - Anfänger-Themen 6
L Frage zum Array Java Basics - Anfänger-Themen 1
A Frage zum UML Design Java Basics - Anfänger-Themen 1
I Hilfe bei Klausur Frage Java Basics - Anfänger-Themen 8
izoards Drucken Frage zu FAQ Beitrag Java Basics - Anfänger-Themen 2
J Frage zu meinem Code (OOP) Java Basics - Anfänger-Themen 4
sserio Split() -> Regex Frage. Java Basics - Anfänger-Themen 7
A OCA Study Guide: 2. Frage aus Kapitel 3 Java Basics - Anfänger-Themen 9
sserio Date Library Frage Java Basics - Anfänger-Themen 9
Max246Sch Frage zu Währungsrechner Code Java Basics - Anfänger-Themen 2
sserio Frage zu HashMaps Java Basics - Anfänger-Themen 20
sserio Frage zu Threading - Multithreading Java Basics - Anfänger-Themen 2
sserio Frage zu Lambda Ausdrücken Java Basics - Anfänger-Themen 7
sserio Frage zu BigInteger Java Basics - Anfänger-Themen 1
D Frage bzgl. Enum-Handhabung Java Basics - Anfänger-Themen 16
xxx12 Frage Java Basics - Anfänger-Themen 2
I Generelle Frage zu Mikroservices (Spring Boot?), Docker... Java Basics - Anfänger-Themen 7
R Frage zu Methoden (Rückgabewert u. ohne.) Java Basics - Anfänger-Themen 2
A Frage zur programmierung Java Basics - Anfänger-Themen 12
M Frage zur Methode split der Klasse String Java Basics - Anfänger-Themen 32
R Input/Output Frage zu Java IO Java Basics - Anfänger-Themen 6
M Frage zu printWriter Java Basics - Anfänger-Themen 5
C Frage zu OLSMultipleLinearRegression Java Basics - Anfänger-Themen 31
KogoroMori21 Frage zum Euklidischen Algorithmus Java Basics - Anfänger-Themen 11
S Verständnis-Frage zu einer HÜ? Java Basics - Anfänger-Themen 1
F Frage betreff Programm mit dem man C++-Code in JAVA-Code übersetzen lassen kann Java Basics - Anfänger-Themen 2
L Frage zur Ticket Maschine Java Basics - Anfänger-Themen 1
J Frage zu OOP-Klassendiagramm Java Basics - Anfänger-Themen 8
OSchriever Frage zu Compiler Java Basics - Anfänger-Themen 8
H Frage zu Throw Exception Java Basics - Anfänger-Themen 2
TimoN11 Frage zu Java-Vererbung (Cast) Java Basics - Anfänger-Themen 5
Bademeister007 Hallo Leute ich hab eine Frage zur ArrayList Java Basics - Anfänger-Themen 8
F Frage betreff Programmierbücher zu Lagerverwaltung als Konsolenprogramm Java Basics - Anfänger-Themen 3
dieter000 Kurze Frage kann mir ejmand kurz diesen Code erklären, bzw wie man die zeilen erklärt und so Java Basics - Anfänger-Themen 1
I String.split regex Frage Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben