Datensätze in eine ArrayList<Movie> speichern

smart85

Mitglied
Hallo Leute,

ich bitte euch um eine Rat. Ich habe eine .txt Datei und möchte diese zeilenweise in ein ArrayList<Movie>
speichern. wie kann ich es machen? Habe viele Ansätze im Internet gefunden, aber irgendwie will es nicht so klappen...hier ein Stück aus dem COde...welche Methode könnte man anstatt von dem readline anwenden, weil mit Strings funktioneirt die Methode readLine, aber wenn ich nicht <String>, sondern <Movie> habe, dann weiß ich ehrlich gesagt nicht wie ich es schreiben soll...

-------------------------------------------------------------------------
public ArrayList<Movie> findall() throws IOException {

ArrayList<Movie> movielist = new ArrayList<Movie>();
FileReader datei = new FileReader(filename);
BufferedReader br = new BufferedReader(datei);
String zeile = null;

Movie film = new Movie();
movielist.add(film);
for(int i=0; i < movielist.size(); i++)
System.out.println( movielist.get( i ) );

while ((film = datei.readLine()) != null)
movielist.add(film);


while ((zeile = br.readLine()) !=null){
System.out.println(zeile);
}
-------------------------------------------------------------------------

P.S.: public class Movie {
private String director;
private String title;



Vielen Dank im Voraus!
 
C

Camino

Gast
weil mit Strings funktioneirt die Methode readLine, aber wenn ich nicht <String>, sondern <Movie> habe, dann weiß ich ehrlich gesagt nicht wie ich es schreiben soll...

P.S.: public class Movie {
private String director;
private String title;

Aber deine Klasse Movie hat doch Strings. Zu diesen Strings (director und title) könnten evtl. auch setter-Methoden existieren, was wir aus dem Code aber leider nicht erahnen können. Und wie die txt-Datei jetzt aufgebaut ist, hmmm.... Stehen da director und title durch Komma getrennt in einer Zeile? Dann müsstest du die eingelesene Zeile bei dem Trennzeichen trennen und mit der setter-Methode (setDirector, setTitle) in das Movie-Objekt schreiben.
 

faetzminator

Gesperrter Benutzer
Du musst natürlich den String in einen [c]Movie[/c] konvertieren. Wenn du z.B. pro Linie [c]<title> <year>[/c] (mit " " dazwischen) hast, kannst du so was machen:
Java:
public class Movie {
    private String title;
    private int year;

    public Movie(String title, int year) {
        this.title = title;
        this.year = year;
    }
    
    // getter, setter, etc...
}

Java:
String line;
while ((line = datei.readLine()) != null) {
    String[] values = line.split(" +"); // nach einem oder mehreren Leerzeichen splitten
    movies.add(new Movie(values[0], Integer.valueOf(values[1])));
}
// ...
 

smart85

Mitglied
Die Movie Klasse ist:

public class Movie {

private String director;
private String title;

public String getDirector() {
return director;
}
public void setDirector(String director) {
this.director = director;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}

}

Die txt-Datei:

Star Wars:George Lucas
Pulp Fiction:Quentin Tarantino
From Dusk Till Dawn:Quentin Tarantino
Der Soldat James Ryan:Steven Spielberg
Trainspotting:Danny Boyle
Jurassic Park:Steven Spielberg
Independence Day:Roland Emmerich
Einer flog ueber das Kuckucksnest:Milos Forman
Das Schweigen der Lämmer:Jonathan Demme
Es geschah in einer Nacht:Frank Capra
Die Verurteilten:Frank Darabont
Minority Report:Steven Spielberg
 

faetzminator

Gesperrter Benutzer
Ja, dann splittest du einfach auf ":" statt " " ;) Und entweder fügst du einen Konstruktor hinzu oder erstellst zuerst das Objekt und setzt danach die beiden Werte über die Setter.
 

smart85

Mitglied
Vielen Dank für eure Hilfe!!!!:):):)

ich habe das jetzt so gemacht und auf der console erscheint der gefärbte Code nicht...verstehe jetzt aber nicht wieso...


public ArrayList<Movie> findall() throws IOException {

ArrayList<Movie> movielist = new ArrayList<Movie>();
FileReader datei = new FileReader(filename);
BufferedReader br = new BufferedReader(datei);
String zeile = null;

System.out.println("----------------------------");

while ((zeile = br.readLine()) !=null){
//try {zeile = br.readLine();}
//catch (IOException e){e.printStackTrace();}
System.out.println(zeile);
}
System.out.println("----------------------------");

while ((zeile = br.readLine()) != null) {
String[] values = zeile.split(":"); // nach einem oder mehreren Leerzeichen splitten
Movie m = new Movie();
m.getDirector();
m.getTitle();
movielist.add(new Movie());
}



>>>>>>>>>>>>>>>>>>>>>>>>>>>>

kann ich es auch so schreiben? Das war mein erster Ansatz..

while( zeile != null ){
String[] splittArray = zeile.split("\\:");
System.out.print(splittArray[0]+" : ");
System.out.print(splittArray[1]+"\n");
try {
zeile = br.readLine();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
 
C

Camino

Gast
Hmm, so ganz verstanden hab ich jetzt nicht, was du damit meinst, was nun nicht auf der Konsole erscheint.

Aber mir ist was anderes aufgefallen:
Java:
Movie m = new Movie();
m.getDirector();
m.getTitle();
movielist.add(new Movie());

Das müsste dann wohl eher so heissen:
Java:
Movie m = new Movie();
m.setTitle(values[0]);
m.setDirector(values[1]);
movielist.add(m);
Weil du ja das erstellte Movie-Objekt füllen und der Liste hinzufügen willst und nicht ein neues (leeres) Objekt.

Und es wäre vielleicht ganz praktisch, wenn du deinen Java-Code hier in Java-Tags schreibst.
 
Zuletzt bearbeitet von einem Moderator:

smart85

Mitglied
Leute bitte hilf mir!!!

bei mir spuckt das Eclipse ein Fehler bei der findAll() -Methode aus, es sagt: the methode findAll is undefined for the type IMovieFinder....gegoogelt habe ich auch schon, finde aber nichts, hat jemand vielleicht eine Idee...Vielen Dank im Voraus!!!

Java:
import java.util.ArrayList;


public class MovieLister {
	
	private IMovieFinder movieFinder;
	
	public MovieLister(){}

//------------------------------------------------------------
   public Movie[] moviesDirectedBy(String director){
		
	    int anz=0, zaehler=0;
    	Movie[] filmliste;
		ArrayList<Movie> liste= new ArrayList<Movie>() ;
		movieFinder = new ColonDelimitedMovieFinder(); // Beziehung --> <<instantiate>>
		liste = movieFinder.findAll(); 
		anz=liste.size();
		filmliste = new Movie[anz];
		System.out.println(anz);
		System.out.println(filmliste[0]);
		return filmliste;
		
    }
//------------------------------------------------------------
 

vimar

Bekanntes Mitglied
bevor ich hier dummschwätze:

du hast selber ne methode geschrieben "findall()" richtig?

du ruftst ab findAll() auf mit großen A. und die gibts bei java auch. aber du willst deine eigene findall() aufrufen oder?

weiter hin fehlt in deinem post weiter oben ein rückgabewert bei "findall()"

also "return movielist" am ende
 

Landei

Top Contributor
Muss es unbedingt eine Text-Datei sein? Mit JAXB gibt es Ein- und Auslesen fast zum Nulltarif, nur hast du dann halt XML auf der Platte.
 

smart85

Mitglied
könntet ihr auch folgendes euch anschauen, BITTE!

ich gebe da einen Regisseur ein und das Programm sollte die dazugehörigen Filme ausgeben...aber irgendwie klappt es nicht so ganz...ich kann den Fehler nicht finden...eigentlich sollte das Programm es machen...vielleicht habe ich einen Ligikfehler oder so...


hier die Main:

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


public class Main {
    // private Movie movie;
     //private ArrayList<Movie> findall;

	public static void main(String[] args) throws IOException {
		
		String regisseur;
	    MovieLister mlist = new MovieLister();
		IMovieFinder c = new ColonDelimitedMovieFinder();
		
	    
	    int auswahl = -1 ;	    	
	    System.out.println("Wählen Sie aus:\n"+"1. >> Filmliste mit zugehörigen Regisseuren anschauen\n"+"2. >> Film aussuchen");
	    auswahl = new Scanner(System.in).nextInt();

	    	//Scanner scanner = new Scanner( new File("movie.txt") );
	    	switch(auswahl){
	    		case 1:c.findall();
	    		  
	    	     break;
	    	
	    		[COLOR="blue"][B]case 2: [/B][/COLOR]
	    			System.out.print("Bitte geben Sie den Regisseur ein: ");
	    		    InputStreamReader isr = new InputStreamReader(System.in);//Eine komplette Zeile von der Standardeingabe lesen
	    		    BufferedReader buffer= new BufferedReader(isr);
	    		    regisseur = buffer.readLine();//Texteingabe von Tastatur.
	    		    buffer.close();
	    		    System.out.println("Regisseur: " +regisseur);
	    		    [B][COLOR="blue"]Movie[] film = mlist.moviesDirectedBy(regisseur);[/COLOR][/B]
	    		    
	    	        //int laenge=film.length;
	    	        //String f = null;
	    	        
	    	        for (int i=0; i<film.length; i++){
		    	       System.out.println("Hallo");    	        
	    	           System.out.println(i+" "+film[i].getTitle());    	        	
	    	        }
	    	        
	    	      /*  for(int i=0;i<laenge;i++){
		    	          if(film[i]!=null){
		    	        	  Movie m = new Movie();
		    	        	  m = film[i];
		    	        	  
		    	        	  if(f==null) System.out.println(" "+m.getTitle()+"; ");
		    	        	  else f = f+ " " + m.getTitle() + ";";  
		    	          }
		    	    else if(i==0){
		    	       System.out.println("Filme dieses Regisseures nicht gefunden");	
	                	 f="Kein Film dieses Directors gelisted";

		    	    }	
	    	        
	    	        }*/
	    	            

	    		break;
	    	}	    
	}

}
 

smart85

Mitglied
die dazugehörige Methode moviesDirectedBy(String director) hier...



Java:
import java.util.ArrayList;


public class MovieLister {
	
	private IMovieFinder movieFinder = new ColonDelimitedMovieFinder();

        public Movie[] moviesDirectedBy(String director){

   	Movie[] filmliste;
   	ArrayList<Movie> allefilme = movieFinder.findall();
   	ArrayList<Movie> filme = new ArrayList<Movie>();
   	
   	for(int j = 0; j < allefilme.size(); j++){
   		if(allefilme.get(j).getDirector().equals(director)){
   			filme.add(allefilme.get(j));
   		}  				
   	}

filmliste = new Movie[filme.size()];
filme.toArray(filmliste);
return filmliste;


}
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
KeTho1712 Java Swing: JTable standardmäßig füllen, sodass bei Start bereits Datensätze gespeichert sind Allgemeine Java-Themen 1
P Analyse und Kategorisierung großer Datensätze Allgemeine Java-Themen 3
F Doppelte Datensätze zusammenführen Allgemeine Java-Themen 12
O viele Datensätze aus Datenbank - Java Heap Space - Excepion Allgemeine Java-Themen 25
W PrepareStatement und Anzahl der Datensätze Allgemeine Java-Themen 2
KonradN Mal eine Frage zu Binary Serialization Allgemeine Java-Themen 15
D Hat Java eine Library um JavaScript auszuwerten? Allgemeine Java-Themen 2
dokan wie kann ich eine funktionierende Suchleiste erstellen Allgemeine Java-Themen 1
B Wie erstelle ich dazu eine Abfrage ob der Button gedrückt wurde? Allgemeine Java-Themen 8
J Integration pay Pale in eine JavaFx Desktop Application Allgemeine Java-Themen 1
berserkerdq2 Wenn ich einfach eine GIF in den Scenebuilder als Bild reinpacke, wird das dann asl Gif angezeigt Allgemeine Java-Themen 1
8u3631984 Strukturiertes Logging : Jedes Feld in eine seperate Zeile - aber wie ? Allgemeine Java-Themen 2
berserkerdq2 Gibt es eine saubere Dokumentation von Jfoenix? Allgemeine Java-Themen 1
M Eigene Datenstruktur um eine Menge zu speichern Allgemeine Java-Themen 3
A Wie schreibe ich eine For-Schleife in ein Stream API um? Allgemeine Java-Themen 12
E Es ist nicht möglich, eine Batch-Anweisung auszuführen. Allgemeine Java-Themen 9
T Eine Frage des Designs Allgemeine Java-Themen 2
R Best Practice Erfahrungswerte für eine Migration von JSF nach Angular (oder anderes JS-Framework) Allgemeine Java-Themen 1
H Eine Linie verkürzen Allgemeine Java-Themen 5
N rekursion mehrfach eine Methode Öffnen Allgemeine Java-Themen 4
berserkerdq2 Wenn ich eine Methode nur jede 50ms ausführen will, wie mach ich das? Allgemeine Java-Themen 4
berserkerdq2 Wie synchronisiere ich eine for-Schleife Allgemeine Java-Themen 12
berserkerdq2 Wie mache ich in IJVM eine if verzweigung? Allgemeine Java-Themen 27
F Gibt es mittlerweile eine Alternative zu DaisyDiff Allgemeine Java-Themen 2
_user_q Was brauche ich, um eine eigene "Search for updates"-Funktion einzubauen? Allgemeine Java-Themen 1
E Eine Methode einer extendeten Klasse deakitivieren Allgemeine Java-Themen 12
LimDul Kam eine java.net.URL zu einer HashMap und ging als DNS Anfrage wieder heraus Allgemeine Java-Themen 18
pizza_dox_9999 Wie füge ich eine "eigene" ScriptEngine dem ScriptEngineManager? Allgemeine Java-Themen 3
F Kennt ihr eine Library um 2 HTML Seiten zu diffen? Allgemeine Java-Themen 8
Y ImagePanel von anderer Klasse in eine MainFrame Klasse hinzufügen. Allgemeine Java-Themen 1
OnDemand Anzeigen was eine Applikation macht Allgemeine Java-Themen 1
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3
J Eine Frage zu den Threads und Task Allgemeine Java-Themen 1
Tobero Wie bekomme ich in welchem Quadrat sich eine Position in einem Grid befindet Allgemeine Java-Themen 11
Tobero Wie kann man eine Poisson Disc Sampler? Allgemeine Java-Themen 7
M Openjdk - gibt es auch eine Openjre? Allgemeine Java-Themen 7
R Lambda Expression in einer Methode execute() aufrufen (execute() ist eine Methode aus dem funktionalen Interface Command) Allgemeine Java-Themen 5
S Noch eine Design-Frage zu Setter Allgemeine Java-Themen 6
N Arrayliste in eine Datei speichern Allgemeine Java-Themen 4
J Öffnen eine jar-Datei Allgemeine Java-Themen 11
Zrebna Gibt es eine Möglichkeit eine NPE zu vermeiden, wenn null returned wird? Allgemeine Java-Themen 3
S Klassen Einfügen von unbekannter menge an Variablen in eine Klasse mithilfe von ASM Allgemeine Java-Themen 5
R Wo müsste ich im Code eine Änderung vornehmen? Allgemeine Java-Themen 6
S Rückgabe einer HttpURLConnection für eine Seite einlesen bei der man eingeloggt ist..? Allgemeine Java-Themen 5
S Gibt es eine Moeglichkeit die Runtime Ausführung zu analysieren..? Allgemeine Java-Themen 7
S Habt ihr eine Idee wie man Serializierung testen kann..? Allgemeine Java-Themen 6
S Wenn eine Klasse zwei Interfaces mit derselben Methodensignatur implementiert: welche wird aufgerufen? Allgemeine Java-Themen 15
Drachenbauer warum bekomme ich hier eine NullPointerException Allgemeine Java-Themen 6
M Gibt es eine API die den aktuellen Wert eines Indikators beim Trading zurückgibt? Allgemeine Java-Themen 7
X Collections Gibt es eine Klasse welche die Vorteile von List und HashMap vereint, aber konstante Laufzeit (O(1)) hat in Java? Allgemeine Java-Themen 4
N Eine stelle der Fibonacci-Zahlenfolge ausgeben. Allgemeine Java-Themen 4
E Hat der Compiler einen Fehler oder warumbeendet return nicht eine Methode ? Allgemeine Java-Themen 7
W Collections Suche etwas Sorted-List-Artiges...hat jemand eine Idee? Allgemeine Java-Themen 13
L Methoden Über Reflections eine Methode mit aufrufen Allgemeine Java-Themen 3
S Kann ich eine Methode schreiben die alle Arten von funktionalen Interfaces akzeptiert..? Allgemeine Java-Themen 21
Drachenbauer Wie kann eine vorgegebene Farbe über einen String erkannt werden? Allgemeine Java-Themen 11
J Datenstruktur für eine Map erstellen Allgemeine Java-Themen 2
sascha-sphw Java 9 module Zugriff auf eine resource einer anderen JAR Allgemeine Java-Themen 0
pkm Kann eine ServerSocket-Klasse nicht stateful sein? Allgemeine Java-Themen 4
B Aufruf der Methode ergibt eine Exception Allgemeine Java-Themen 13
I Eine Anwendung so gut wie möglich beschützen Allgemeine Java-Themen 9
M Wie kann man eine void Methode mit Variablen von zwei verschiedenen Objekten ausführen? Allgemeine Java-Themen 15
X Wie mache ich hier eine Rekursion rein ? Allgemeine Java-Themen 7
K OOP Suche Hilfe + Erklärung für eine Hausaufgabe Allgemeine Java-Themen 1
N Über einen Button in JavaFX ein Event über eine Pipeline schicken(Netty) Allgemeine Java-Themen 1
M Login in eine Webseite mit Java Allgemeine Java-Themen 3
A NetBeans Suche Programmierer für eine Belegarbeit Allgemeine Java-Themen 11
D Warum kann ich eine (deflaut) Klasse aus einer Libary in einem anderen Projekt benutzen? Allgemeine Java-Themen 3
L Übergabe an eine eher einfache Java- Applikation wegen Kündigung Allgemeine Java-Themen 1
C Ein Iterator ist eine Implementierung des Interface Iterable? Allgemeine Java-Themen 2
M Schlüsselworte Was ist eine Java Spezifikation + JSR? Allgemeine Java-Themen 11
E RMI NULL-Pointer-Exeception wenn der RMI-Proxy eine Methode deligiert Allgemeine Java-Themen 2
E RMI FWH: RMI- Wie erstelle ich stubs dynamisch, bzw. unterdrücke eine Statisch-Warnung? Allgemeine Java-Themen 0
J Eine bestimmte Zahl im Integer ändern Allgemeine Java-Themen 9
Q-bert Strings aus der JList in eine Datenbank speichern Allgemeine Java-Themen 1
D Möglichkeit mit GAE eine Table auszulesen und eine csv zu schreiben Allgemeine Java-Themen 22
S Korrekte Pfadangaben damit eine .jar Datei unter Windwos läuft. Allgemeine Java-Themen 24
D Eine Forschleife mit Threads abarbeiten um es zu schneller zu machen. Ist das möglich? Allgemeine Java-Themen 20
S Wie kann ich eine kleine Stelle in meinem Code mit multiplen Threads abarbeiten..? Allgemeine Java-Themen 20
B Gibt es eine Funktion die den Datentyp einer Variablen ermittelt? Allgemeine Java-Themen 8
R bei eclipse von java in eine andere programmiersprache wechseln? Allgemeine Java-Themen 2
D Pivot-Wahl beim QuickSort steigert die Effizienz, eine Lüge??? Allgemeine Java-Themen 17
C Eclipse einstellen, dass eine bestimmte JDK benutzt werden soll Allgemeine Java-Themen 3
M Klassen Eine Klasse in mehreren Klassen einbinden Allgemeine Java-Themen 11
A Best Practice Java - eine Art Plugin-Struktur Allgemeine Java-Themen 3
S wie rufe ich mit .jar datei eine .bat auf? Allgemeine Java-Themen 15
R Signatur von Methoden in eine Datei schreiben? Allgemeine Java-Themen 4
perlenfischer1984 Functionsparameter prüfen und eine Exception werfen !? Allgemeine Java-Themen 11
J Mehrere Wörter getrennt in eine Array einlesen, wie ? Allgemeine Java-Themen 7
E Methoden Hat jemand eine gute Lösung? Allgemeine Java-Themen 5
Z NullPointerException beim Schreiben einer ArrayList in eine Datei Allgemeine Java-Themen 6
Exdroid BlueJ Wie bekomme ich die Ausgabe in eine TXT Datei? Allgemeine Java-Themen 2
G Methoden Aus einem Event, wo ich weiß, dass es ausgeführt werden wird, eine Get-Methode basteln Allgemeine Java-Themen 8
F Wie kann ich auf einem System prüfen, ob eine lib verfügbar ist? Allgemeine Java-Themen 2
Tausendsassa Interface Eine Gui von einer anderen schließen lassen Allgemeine Java-Themen 3
S Threads Kann mir jemand helfen eine parallele Hilfsklasse zu implementieren..? Allgemeine Java-Themen 3
S Best Practice Brauche eine Idee für eine Java Projekt! Allgemeine Java-Themen 11
P Zwei ArrayLists: Ohne die eine überhaupt anzurühren, wird sie verändert Allgemeine Java-Themen 2
M Eine Datei im Speicher erneut laden(?) Allgemeine Java-Themen 1
V Gibt es eine Möglichkeit die Internet auslastung mit Java auszulesen Allgemeine Java-Themen 11

Ähnliche Java Themen

Neue Themen


Oben