Originariamente inviato da alemagno
Farò una classe per il film, uno per l'elenco dei metodi, una classe per la comparazione di film... ma poi? Passi successivi?
Allora:

1) Sicuramente una classe es. Film per modellare il film con tutte le proprietà che hai citato (chiaramente dovrai valutare tu come rappresentare certe proprietà es. i "Premi").

2) Ti consiglierei di fare una classe es. LettoreFileFilm che si occupa solo di leggere i film da file. Visto che il numero di film è arbitrario e non noto a priori, personalmente ti suggerisco di fare un metodo di istanza che legge e restituisce un film per volta.

Non so se conosci la classe java.io.BufferedReader, essa ha un metodo readLine() che legge 1 riga per volta e se non ci sono più righe restituisce null. Ecco, in modo similare puoi fare un metodo es. Film leggiFilm() e se non ce ne sono più (end-of-file), restituisci null.
E internamente a questa classe puoi benissimo sfruttare proprio un BufferedReader!
Se c'è qualcosa di "malformato", puoi lanciare una eccezione, generica o magari specifica che definisci tu.

3) Per il resto, cioè la gestione dell'insieme dei film e delle ricerche, dipende molto da come vuoi gestire tali ricerche, nel senso: se ti basta fare sort su una lista e ricerche "lineari" su una lista o vuoi creare un tuo "insieme" che sia più "indicizzato" e/o che offra metodi es. getFilmPerAnno(int anno)

Per il momento non mi viene in mente altro, qualche dritta comunque te l'ho data, spero.