Moin, bin gerade dabei Java zu lernen, nun komme ich aber nicht weiter.
Ich habe eine Classe in der eine Log Datei eingelesen wird und dann in einem ArrayList gespeichert wird.
Nun will ich eine zweite Klasse machen, in der ich dieses Array benutzen kann, nur weiß ich nicht wie ich das Array da rüber bekomme in die zweite Klasse, damit ich die da benutzen kann. Hab bisschen rum probiert mit Parameter usw.. aber nichts klappt. Kann mir da einer weiter helfen? Im Internet hab ich auch geguckt, aber ich finde nichts oder ich bin zu blöde das zu verstehen.
Klasse 1:
Java:
packageStatistic;importjava.io.BufferedReader;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.IOException;importjava.io.InputStreamReader;importjava.util.ArrayList;publicclassEinlesen{publicArrayList<String>Einlesen(){BufferedReader input =null;try{
input =newBufferedReader(newInputStreamReader(newFileInputStream("./docs/Log.log")));}catch(FileNotFoundException e){System.out.println("Datei nicht gefunden! Bitte neue Einlesen.");}String thisLine =null;ArrayList<String>LogListe=newArrayList<String>();try{while((thisLine = input.readLine())!=null){LogListe.add(thisLine +"\n");}}catch(IOException e){
e.printStackTrace();}returnLogListe;}}
packageStatistic;importjava.util.ArrayList;publicclassAuswertung{Einlesen einlesen =newEinlesen();publicvoid bearbeite (){ArrayList<String> liste = einlesen.Einlesen();// mache etwas mit der Liste.}}
Allerdings muss ich sagen, dass deine Wahl, für die Klasse und die Methode den gleichen Namen zu wählen ("Einlesen"), eine sehr unglückliche ist.
Abgesehen von der Namenswahl sollten Methoden mit einem Kleinbuchstaben beginnen.
Oha hat echt geklappt, danke für die schnelle Antwort! Also muss man, wenn man was rüber tauscht, ihm wieder eine neue Variable geben und die Sachen da rein stecken ? oder wie soll man das verstehen xp?
Vielleicht finde ich ja noch was woran ich scheitere x)
Dazu muss man deine Aussage erstmals verstehen
Was bedeutet "rüber tauschen"? Wer ist "ihm"? Was ist "da rein stecken"?
Versuche dich etwas mit den Java Begriffen vertraut zu machen, einerseits verstehst du dann leichter wenn dir jemand etwas versucht zu erklären.
Andereseits verstehen andere Programmierer dich ebenfalls einfacher.
Generell sollte man sagen: Werte können per Parameter übergeben bzw. Rückgabewerte empfangen werden. Natürlich sollte das ganze im logischen Rahmen bleiben.
PS: Du solltest "Einlesen" nicht als Klassenname verwenden. Klassen stellen Objekte dar, Methoden stellen "Tätigkeiten" dar.
Beispiel: Der "Datenleser" kann per "einlesen" die Daten aus einem File einlesen
PS: Du solltest "Einlesen" nicht als Klassenname verwenden. Klassen stellen Objekte dar, Methoden stellen "Tätigkeiten" dar.
Beispiel: Der "Datenleser" kann per "einlesen" die Daten aus einem File einlesen
An dieser Stelle möchte ich auch noch auf ein paar Sachen aufmerksam machen.
Mir ist klar: der Threadersteller ist gerade dabei Java zu lernen, allerdings möchte ich an der Stelle auf sinnvolle Aspekte hinweisen, die man beim Programmieren (meiner Meinung nach) beachten sollte.
Man sollte darauf achten, dass eine Methode nur EINE Aufgabe übernimmt. Fehlerbehandlung ist laut dem Buch "Clean Code" auch eine Aufgabe, man kann deinen Code dann wie folgt restrukturieren:
Java:
publicArrayList<String>Einlesen(){BufferedReader input =null;try{
input =newBufferedReader(newInputStreamReader(newFileInputStream("./docs/Log.log")));String thisLine =null;ArrayList<String>LogListe=newArrayList<String>();}catch(FileNotFoundException e){System.out.println("Datei nicht gefunden! Bitte neue Einlesen.");}try{while((thisLine = input.readLine())!=null){LogListe.add(thisLine +"\n");}}catch(IOException e){
e.printStackTrace();}returnLogListe;}
packageStatistic;importjava.io.BufferedReader;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.IOException;importjava.io.InputStreamReader;importjava.util.ArrayList;publicclassEinlesen{publicList<String>Einlesen(){List<String> logListe =newArrayList<String>();try{
logListe =lese_daten_aus_datei();}catch(FileNotFoundException e){System.out.println("Datei nicht gefunden! Bitte neue Einlesen.");}catch(IOException e){
e.printStackTrace();}returnLogListe;}privateList<String>lese_daten_aus_datei()throwsFileNotFoundException,IOException{List<String> data =newArrayList<String>();String thisLine;Reader input =newBufferedReader(newInputStreamReader(newFileInputStream("./docs/Log.log")));while((thisLine =((BufferedReader)input).readLine())!=null){
data.add(thisLine +"\n");}return data;}}
Sorry dass ich den Code anhängen muss, aber ich hatte jetzt erst die Zeit den Post zu editieren, aber wegen der vergangenen Zeit ( Post älter als 30 Min) konnte ich das nicht mehr tun. Deswegen dieser Post.
EDIT:
Im vorigen Beitrag von mir sollte eigentlich noch stehen dass ich aus Versehen zu früh auf den Absende-Button gekommen bin und die Code-Darstellung in meinem Browser fehlerhaft war. Entschuldigung dafür. Ich möchte hier niemanden mit "Herumnörgeln" nerven, nur wäre ich froh gewesen, wenn ich direkt am Anfang ebenfalls auf solche Sachen hingewiesen worden wäre.
Ich hab hier nun eine Methode geschrieben, die Daten in eine Datei speichern soll. Nur weiß ich nicht wie ich die nun ganz einfach austesten soll, wenn die überhaupt so richtig geschrieben ist.
Code:
public void saveAs(String filename){
FileWriter writer = null;
try
{
writer = new FileWriter(filename);
writer.write(filename);
}catch ( IOException e ) {
System.err.println( "Konnte Datei nicht erstellen" );
}
}