Reader - brauche Hilfe

F

fh13

Gast
Hallo,

ich hoffe das ich mit eurer Hilfe nun weiter kommen ... mein Problem is folgendes :

Ich habe mehrere BufferedReader (weil mehrer Dateien)...

nun will ich von jedem Reader über die Methode *.readLine(), den Text Zeile für Zeile aus der jeweiligen .txt Datei auslesen
nur is das Problem das jedes mal wenn ich die Methode "load" (siehe Quelltext) aufrufe wird der BufferedReader neu geladen und beim Befehl *.readLine() fängt das Prog wieder von vorn an die .txt Datei zu lesen...

WIE KANN ICH DAS PROBLEM BEHEBEN ??


Java:
//Variablen blabla

public void load (String loadstuff) 
 { 
   BufferedReader in1 = new BufferedReader(new FileReader("C:\\Bcom\\1.txt")  );
   BufferedReader in2 = new BufferedReader(new FileReader("C:\\Bcom\\2.txt")  );
   BufferedReader in3 = new BufferedReader(new FileReader("C:\\Bcom\\3.txt")   );

   if(loadstuff== "1"  ){ cur1  = in1.readLine();  };
   if(loadstuff== "2"  ){ cur2  = in2.readLine();  };
   if(loadstuff== "3"  ){ cur3  = in3.readLine();  };

 }
void doit()
{
  while(cur1 != null) 
  {
   load("1");
   load("2");
   load("3");
   System.out.println(cur1);
   System.out.println(cur2);
   System.out.println(cur3);
  }
}

// restliches BLABLA
Danke schon mal,
Flo

PS: ich natürlich nicht die String dann einfach ausgeben wie in dem Beispiel hier das dient nu zur Veranschaulichung...

PS
 
Zuletzt bearbeitet von einem Moderator:
F

fh13

Gast
ja ich das mit dem Schließen normal müsste da auch noch try und catch hin... aber darum gehts ja nich...

und ich mach deshalb immer nen neuen Reader auf weil ich nicht weis wie man den nur einmal öffnet dann immer wieder so aufruft mit readLine so wie ich das jetzt habe ....
 
F

fh13

Gast
ok ich hätte wahrscheinlich dazu sagen sollen das ich ein ganz schöner Anfänger bin ....

kann mir das was Volvagia meint mal kurz anhand eines Codes erklären ... BITTE
 

Noctarius

Top Contributor
Java:
class Foo {
  private BufferedReader in1 = new BufferedReader(new FileReader("C:\\Bcom\\1.txt"));

  public void load(String loadstuff) {
    ...
  }
}

Trotzdem solltest du daran denken nachdem du fertig bist mit laden die Reader per close() zu schließen.
 
F

fh13

Gast
Wow ich bin beeindruckt wie schnell hier einem geholfen wird ....

@ Noctarius: die Buffered Reader einfach mit in die Class zu schreiben funktioniert leider nicht weil dann nämlich beim Compilieren

immer kommt das das es die "Variable r1,r2 und r3 gar nicht gibt" also (Cannot find Symbol...) oder so
 
F

fh13

Gast
Java:
import java.io.*;

class Booo
{
 
 String datei; 
 int loadstuff; 

 String cur1";  
 String cur2;
 String cur3;
 

 
 public void load (int loadstuff) throws Exception
 { 
 
   BufferedReader r1 = new BufferedReader(new FileReader("C:\\Bcom\\1.txt")  );
   BufferedReader r2 = new BufferedReader(new FileReader("C:\\Bcom\\2.txt")  );
   BufferedReader r3 = new BufferedReader(new FileReader("C:\\Bcom\\3.txt")   );
  
   if(loadstuff==1 ){ cur1  = emailin.readLine();  };
   if(loadstuff==2 ){ cur2  = vnamein.readLine();  };
   if(loadstuff==3 ){ cur3   = namein.readLine();  };

 }
 
 void doit()throws Exception
 {

  
  while(cur1 != null) 
  {
   load(1);
   load(2);
   load(3);

   System.out.println(cur1)  ;
   System.out.println(cur2);
   System.out.println(cur3);
  }
  System.out.println("End");
 }
}

public class Mainprog
{
 public static void main(String[] args)
 {
  Booo doitnow = new Booo();
}}



UND ich schätze mal er meinte es so:

Java:
import java.io.*;

class Booo
{
 
 String datei; 
 int loadstuff; 

 String cur1";  
 String cur2;
 String cur3;
 
   BufferedReader r1 = new BufferedReader(new FileReader("C:\\Bcom\\1.txt")  );
   BufferedReader r2 = new BufferedReader(new FileReader("C:\\Bcom\\2.txt")  );
   BufferedReader r3 = new BufferedReader(new FileReader("C:\\Bcom\\3.txt")   );
 


 public void load (int loadstuff) throws Exception
 { 
 
   if(loadstuff==1 ){ cur1  = emailin.readLine();  };
   if(loadstuff==2 ){ cur2  = vnamein.readLine();  };
   if(loadstuff==3 ){ cur3   = namein.readLine();  };

 }
 
 void doit()throws Exception
 {

  
  while(cur1 != null) 
  {
   load(1);
   load(2);
   load(3);

   System.out.println(cur1)  ;
   System.out.println(cur2);
   System.out.println(cur3);
  }
  System.out.println("End");
 }
}

public class Mainprog
{
 public static void main(String[] args)
 {
  Booo doitnow = new Booo();
}}

aber da kommt der genannte Feheler
 

ARadauer

Top Contributor
ok mal was konstruktives...

Java:
String cur1";  
String cur2;
String cur3;

na wo ist der fehler?

Generell ist der Code nicht so besonders schön, was willst du eigentlich genau machen?

Code:
 public void load (int loadstuff) throws Exception
 {     
   
   if(loadstuff==1 ){ cur1  = emailin.readLine();  };
   if(loadstuff==2 ){ cur2  = vnamein.readLine();  };
   if(loadstuff==3 ){ cur3   = vnamein.readLine();  };
 
 }
so würde ich keine funktionalität kapseln...

aber naja, du deklarierst oben r1 und nimmst unten emailin ??

so würde es laufen

Java:
class Booo
{
 
 String datei; 
 int loadstuff; 
 
 String cur1;  
 String cur2;
 String cur3;
 
 BufferedReader emailin;
 BufferedReader vnamein;
 BufferedReader namein;
 

 
 public void load (int loadstuff) throws Exception
 {     
   
   if(loadstuff==1 ){ cur1  = emailin.readLine();  };
   if(loadstuff==2 ){ cur2  = vnamein.readLine();  };
   if(loadstuff==3 ){ cur3   = vnamein.readLine();  };
 
 }
 
 void doit()throws Exception
 {
    try {
       emailin=  new BufferedReader(new FileReader("C:\\Bcom\\1.txt")  );
       vnamein = new BufferedReader(new FileReader("C:\\Bcom\\2.txt")  );
       namein = new BufferedReader(new FileReader("C:\\Bcom\\3.txt")   );
     
     while(cur1 != null) 
     {
      load(1);
      load(2);
      load(3);
    
      System.out.println(cur1)  ;
      System.out.println(cur2);
      System.out.println(cur3);
     }
     System.out.println("End");
    
   } finally{
      if(emailin != null)
         emailin.close();
      if(vnamein != null)
         vnamein.close();
      if(namein != null)
         namein.close();
   }
   
}

aber wie schon gesagt, so würde ich methoden nicht aufbauen. Hast du wirklich 3 Listen wo die Personen verteilt sind? Nicht sehr sauber oder?

Ich würde eher einen Methode machen die ein gesamtes PersonenObjekt lädt
 
F

fh13

Gast
ok das ist ne Möglichkeit
ja der code is nicht schön keine frage aber ... hauptsache es geht aber kann ich die Buffreader nich einfach in ein object machen oder so ... weil dann wäre die doit()-Methode übersichtlicher

ich weis halt nicht ...
 

ARadauer

Top Contributor
Im Grunde fängt es ganz vorne an... da kann nix gutes daraus werden
doit ist als name falsch, was soll maches machen? es machen... toll ;-)
Booo was ist booo? Wenn man Dinge nach dem benennt was sie sind, ist man schon einen schritt weiter das zu programmieren was sie machen sollen ...
1.txt, 2.txt, 3.txt Da sind ja Personen/Benutzer oder was drinnen, oder? Steht wirklich in 1 die ganzen Vornamen und in 2 die ganzen Nachnamen? das ist ja selsam, warum nicht in einer Datei und dann mit ; getrennt?
 

ARadauer

Top Contributor
was willst du den machen? eine liste von benutzern lesen und mit denen das was machen? zb ausgeben?
wir brauchen einen benutzer:

Java:
public class User {
   
   private String name;
   private String surname;
   private String password;
   
   public User(String name, String surname, String password) {
      this.name = name;
      this.surname = surname;
      this.password = password;
   }

   public String getName() {
      return name;
   }
   
   public void setName(String name) {
      this.name = name;
   }
   
   public String getSurname() {
      return surname;
   }
   
   public void setSurname(String surname) {
      this.surname = surname;
   }
   
   public String getPassword() {
      return password;
   }
   
   public void setPassword(String password) {
      this.password = password;
   }
   
}

Was macht das hauptprogramm? User Lesen und ausgeben

Java:
   public static void main(String[] args) {
      UserReader userReader = new UserReader(new File("C:\\Bcom\\1.txt"));
      List<User> userList;
      try {
         //lesen
         userList = userReader.readUsers();
         
         //ausgeben
         for(User user: userList){
            System.out.println("User: "+user.getName()+" "+user.getSurname());
         }
      } catch (Exception e) {
         System.out.println("Fehler beim lesen..");
         e.printStackTrace();
      }      
   }

Gut und wie lesen wir jetzt?

Java:
import java.io.*;
import java.util.ArrayList;
import java.util.List;

class UserReader {
   
   private File fileToReadFrom;

   public UserReader(File fileToReadFrom) {
      this.fileToReadFrom = fileToReadFrom;
   }

   public List<User> readUsers() throws Exception {
      List<User> result = new ArrayList<User>();
      BufferedReader reader = null;
      try {
         reader = new BufferedReader(new FileReader(fileToReadFrom));
         String line = null;
         while ((line = reader.readLine()) != null) {
            result.add(createUser(line));
         }
      } finally {
         if (reader != null)
            reader.close();
      }
      return result;

   }

   public User createUser(String line) {
      String[] parts = line.split(";");
      return new User(parts[0], parts[1], parts[2]);
   }
}

So würde ich sowas machen...
das ganze setzt voraus das die liste als csv mit ; getrennt vorliegt...
 
F

fh13

Gast
So hab ichs jetzt...

Java:
import java.io.*;

class Botdo
{
 Botdo()  // Hauptmethode weil public static void main nicht die Methoden aufrufn kann
 {
  final();
 }  

 String datei; 
 String loadstuff; 

 String cureml=".";  	BufferedReader emlin;
 String curvnm;		BufferedReader vnmin;
 String curnme;		BufferedReader nmein;
 String curplz;		BufferedReader plzin;
 String curort;		BufferedReader ortin;
 String curstr;		BufferedReader strin;
 String curnmr;		BufferedReader nmrin;
 String curtnr;		BufferedReader tnrin;


 
 public void init() 
 {
  try
  {
   emlin = new BufferedReader(new FileReader("C:\\Bcom\\email.txt")  );
   vnmin = new BufferedReader(new FileReader("C:\\Bcom\\vname.txt")  );
   nmein = new BufferedReader(new FileReader("C:\\Bcom\\name.txt")   );
   plzin = new BufferedReader(new FileReader("C:\\Bcom\\plz.txt")    );
   ortin = new BufferedReader(new FileReader("C:\\Bcom\\ort.txt")    );
   strin = new BufferedReader(new FileReader("C:\\Bcom\\straße.txt") );  
   nmrin = new BufferedReader(new FileReader("C:\\Bcom\\nummer.txt") );
   tnrin = new BufferedReader(new FileReader("C:\\Bcom\\tnummer.txt"));
  }
  catch(IOException iox){System.out.println("Data File Error");};
 }

 public void closeStreams()
 {
  try
  {
   emlin.close(); 
   vnmin.close();
   nmein.close();
   plzin.close();
   ortin.close();
   strin.close();
   nmrin.close();
   tnrin.close();
  }
  catch(IOException iox){System.out.println("Error in closing Data Reader");};
 }

 public void load (String loadstuff)
 {
  try 
  {
   if(loadstuff.equals("em")){ cureml = emlin.readLine(); };
   if(loadstuff.equals("vn")){ curvnm = vnmin.readLine(); };
   if(loadstuff.equals("nm")){ curnme = nmein.readLine(); };
   if(loadstuff.equals("pl")){ curplz = plzin.readLine(); };
   if(loadstuff.equals("or")){ curort = ortin.readLine(); };
   if(loadstuff.equals("st")){ curstr = strin.readLine(); };
   if(loadstuff.equals("nr")){ curnmr = nmrin.readLine(); };
   if(loadstuff.equals("tn")){ curtnr = tnrin.readLine(); };
  }
  catch(IOException iox){System.out.println("Error in reading Data File");};
 }
 
 void final()
 {
  init();
  
  while(cureml != null) 
  {
   load("em");
   load("vn");
   load("nm");
   load("pl");
   load("or");
   load("st");
   load("nr");
   load("tn");
   System.out.println(cureml);
   System.out.println(curvnm);
   System.out.println(curnme);
   System.out.println(curplz);
   System.out.println(curort);
   System.out.println(curstr);
   System.out.println(curnmr);
   System.out.println(curtnr);
   System.out.println("");
  }
  System.out.println("End");
  closeStreams();
 }
}

public class Bot
{
 public static void main(String[] args)
 {
  Botdo doitnow = new Botdo();
}}
 

Haave

Top Contributor
Merke: In Java darf kein Bezeichner einem Schlüsselwort gleichen.
Hast du das Gepostete schon mal ausprobiert? Das wird sich höchstwahrscheinlich nicht einmal kompilieren lassen.
 
F

fh13

Gast
@ Haave : doch geht einwandfrei ... aber werds trotzdem ändern

@Noctarius : nich schön aber für mehr reichen meine Kenntnisse nicht

@all : für meine Zwecke sollte es reichen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
R CSV Reader läuft nicht richtig an Java Basics - Anfänger-Themen 8
S Input/Output Reader/Writer finden file nicht Java Basics - Anfänger-Themen 3
L Klassen NFC Reader und JavaFx Problem -> threads? Java Basics - Anfänger-Themen 2
A Reader wohin werden Daten gespeichert? Java Basics - Anfänger-Themen 7
Textsurfer Erste Schritte CSV Import Reader Writer Java Basics - Anfänger-Themen 0
A Reader für Benutzereingabe in Eclipse importieren Java Basics - Anfänger-Themen 3
W Reader Java Basics - Anfänger-Themen 9
W Java XML-Reader: Content not allowed in Prolog Java Basics - Anfänger-Themen 7
D Jpg in BufferedImage Reader oder Array ablegen? Java Basics - Anfänger-Themen 5
H "Conways GameofLife - Vom Reader ins Array" Java Basics - Anfänger-Themen 5
C FileWriter bzw. Reader fehlerhaft Java Basics - Anfänger-Themen 6
Sogomn Input/Output Reader, Writer und Streams Java Basics - Anfänger-Themen 6
P txt reader Problem Java Basics - Anfänger-Themen 17
L buffered reader produziert zu viele und seltsame zeichen Java Basics - Anfänger-Themen 2
A Interface Reader interface verwenden Java Basics - Anfänger-Themen 4
S Input/Output Reader: "null" wenn While-Ende Java Basics - Anfänger-Themen 5
M Reader-Problem Java Basics - Anfänger-Themen 5
Haubitze_Broese RSS-Reader? Java Basics - Anfänger-Themen 2
Haubitze_Broese Pattern für Links in RSS-Reader Java Basics - Anfänger-Themen 6
A Problem Reader Java Basics - Anfänger-Themen 39
Developer_X Sav-Data reader, fehler Java Basics - Anfänger-Themen 2
V Buffered Reader, erst ab bestimmter Zeile auslesen? Java Basics - Anfänger-Themen 8
K Probleme mit Buffered Reader Java Basics - Anfänger-Themen 8
P Buffered Reader an Anfang setzen Java Basics - Anfänger-Themen 4
D RSS Reader mit Redaktionssystem Java Basics - Anfänger-Themen 7
L Streams und Reader/Writer Java Basics - Anfänger-Themen 8
F Was gibt der Buffered Reader zurück bei Dateiende? Java Basics - Anfänger-Themen 2
T Writer/Reader Problem Java Basics - Anfänger-Themen 4
H Buffered Reader Java Basics - Anfänger-Themen 7
G Buffered REader, String, ist mein code korrekt? Java Basics - Anfänger-Themen 4
T Ich brauche eine Schleife die eine beliebige Zahl so lange durch 10 teilt bis zur Null Java Basics - Anfänger-Themen 5
_so_far_away_ Inventarisierungssystem brauche switch Cases und weiß nicht, wie ich e implementieren muss Java Basics - Anfänger-Themen 5
berserkerdq2 Brauche ich while != -1, wenn ich immer einen BufferedReader verwende? Java Basics - Anfänger-Themen 8
KyZarr Was brauche ich alles? Java Basics - Anfänger-Themen 2
B Brauche Hilfe zu einem Code Java Basics - Anfänger-Themen 5
J Brauche Hilfe bei for-each Aufgabe Java Basics - Anfänger-Themen 1
HeiTim Brauche Hilfe soll ein nummeriertes Feld ausgeben lassen Java Basics - Anfänger-Themen 17
J Brauche Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
H Brauche Hilfe Java Basics - Anfänger-Themen 2
H Brauche hilfe Java Basics - Anfänger-Themen 3
C Brauche Hilfe beim Schreiben eines Programmes :/ Java Basics - Anfänger-Themen 1
C Brauche Hilfe um ein Programm zu schreiben Java Basics - Anfänger-Themen 8
Leo0909 Ich brauche Hilfe bei dieser Aufgabe Java Basics - Anfänger-Themen 2
MichelNeedhelp Brauche zu diesem Labyrinth ein Skript? Der Hamster soll im Urzeigersinn das ganze Labyrinth abgehen und wieder an seinem Ursprungsplatz sein. Java Basics - Anfänger-Themen 40
H Brauche Hilfe in Java Eclipse Programmieraufgabe Neuling Java Basics - Anfänger-Themen 3
D Brauche Dringend Hilfe...Prozedur/Funktionsprozedur Ergebnis augeben Java Basics - Anfänger-Themen 11
I Brauche Hilfe bei Objektorientiertem programmieren Java Basics - Anfänger-Themen 23
M Brauche Hilfe bei If-Scheifen Java Basics - Anfänger-Themen 2
F ich brauche Hilfe bei Listen Java Basics - Anfänger-Themen 13
J Ich brauche Hilfe bei einem Code (Variablen speichern) Java Basics - Anfänger-Themen 29
E Ich Brauche Hilfe Java Basics - Anfänger-Themen 3
L Brauche Hilfe beim arbeiten mit Konstruktoren Java Basics - Anfänger-Themen 20
J Brauche Hilfe bei einer aufgabe Java Basics - Anfänger-Themen 1
S Brauche hilfe in Java [Fehler in mein Code]? Java Basics - Anfänger-Themen 2
B BITTE!! Ich brauche dringende Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 17
TpKey10 Ich brauche Hilfe Java Basics - Anfänger-Themen 14
F Ich brauche Hilfe bei Objektorientierter Programmierung... Java Basics - Anfänger-Themen 19
L Input/Output Wurzelzeichen in der Konsole ausgeben | Brauche Hilfe Java Basics - Anfänger-Themen 6
J Brauche Hilfe bei dieser Aufgabe Java Basics - Anfänger-Themen 3
T Brauche Hilfe um ein Programm zu verstehe Java Basics - Anfänger-Themen 4
C Ich brauche hilfe für meine Klausur Java Basics - Anfänger-Themen 13
C LMC laufen kriegen, welches Java brauche ich ? Java Basics - Anfänger-Themen 5
M Was brauche ich für Java + Fehler Java Basics - Anfänger-Themen 2
J Brauche Hilfe !! Java Basics - Anfänger-Themen 8
R Spielfeldbegrenzung einfügen (Java)? Brauche Hilfe! Java Basics - Anfänger-Themen 15
C Brauche dringend Hilfe. Umfrage mit ja und nein in Java erstellen? Java Basics - Anfänger-Themen 12
U Brauche Hilfe bei Programmierung einer Produktdatenbank App Java Basics - Anfänger-Themen 4
I Brauche Denkanstoß: Weitergabe von Kontaktinfos aus verschiedenen Kontaktformularen von Webseiten Java Basics - Anfänger-Themen 2
M Brauche Tipps für ein Spiel Java Basics - Anfänger-Themen 4
P Brauche Hilfe bei ResultSet mit MySQL Java Basics - Anfänger-Themen 6
T Datentypen Brauche Hilfe bei Arrays Java Basics - Anfänger-Themen 3
U Brauche Hilfe bei Bisektionsverfahren Java Basics - Anfänger-Themen 23
E Erste Schritte brauche hilfe zum verstehen einer Klasse(Tiefensuche) Java Basics - Anfänger-Themen 17
I Brauche Hilfe bei Schleifen Java Basics - Anfänger-Themen 18
J Brauche Starthilfe für editable Tableview Java Basics - Anfänger-Themen 0
B Java Graphen zeichnen - Brauche Hilfe Java Basics - Anfänger-Themen 9
S brauche hilfe bei Fehlersuche Java Basics - Anfänger-Themen 7
M JDK installieren Brauche dringend Hilfe Java Basics - Anfänger-Themen 2
L Brauche Hilfe bei Preisberechnungspogramm Java Basics - Anfänger-Themen 1
J Brauche Fußball-Ratschlag Java Basics - Anfänger-Themen 1
E Brauche eine Antwort zum Thema RegEx ( Alternative zur Lösung auch gesucht ) Java Basics - Anfänger-Themen 5
D Hilbert und Peano Kurve, ich brauche Hilfe Java Basics - Anfänger-Themen 4
S Brauche hilfe bei Pong (JFrame) Java Basics - Anfänger-Themen 2
V Hilfe-brauche eine Idee! Java Basics - Anfänger-Themen 5
Q Erste Schritte Brauche Hilfeeee!! Java Basics - Anfänger-Themen 2
R Brauche Hilfe beim fertigstellen eines Chat programms Java Basics - Anfänger-Themen 8
A Erste Schritte Brauche Hilfe Java Basics - Anfänger-Themen 2
D Brauche Hilfe für mein übungsprogramm Java Basics - Anfänger-Themen 16
S Klassen Brauche Hilfe bei Erstellung einer Klasse für einen Tachenrechner!!! Java Basics - Anfänger-Themen 6
W Brauche hilfe bei Hausübung Java Basics - Anfänger-Themen 10
D Brauche Hilfe bei Modulo (Übungsaufgabe) Java Basics - Anfänger-Themen 14
X Brauche Hilfe bei printOnScreen Methode !!! Java Basics - Anfänger-Themen 2
H mysql brauche hilfe, wer kann eine (längere) aufgabe für mich erledigen Java Basics - Anfänger-Themen 2
K Erste Schritte Brauche Hilfe bei Starten des Programms Java Basics - Anfänger-Themen 11
B Erste Schritte HILFE Brauche ein Beispiel für korrekte Syntax mit Semantikfehlern Java Basics - Anfänger-Themen 6
H Java von Kopf bis Fuß: Brauche Hilfe Java Basics - Anfänger-Themen 6
P Wozu brauche ich (this.)? Java Basics - Anfänger-Themen 3
B Erste Schritte Brauche Hilfe bei einem Java-Taschenrechner Java Basics - Anfänger-Themen 11
M suche/brauche Links über rein GUI Beispielprogramme Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben