Oi,
sinceramente, achei confuso sua necessidade, mas vamos lá. Você tem que ter em mente quais informações você precisa possuir registrada em TXT.
Essas informações referem-se a exatamente cada objeto, como Ator, Diretor, Midia e assim por diante.
É óbvio que tu vai criar objetos que não terão nenhum tipo de informação persistida em arquivo, mas há aqueles que terão todas.
Isso pode ocorrer com esses objetos, como Ator, Diretor e Midia, conforme cito acima, pois são informações que você pode precisar recuperar em momento posterior.
Sobre a sua associação, é basicamente a declaração de um Objeto dentro de outro.
Para a sua classe Midia, essa questão de Atore e Diretor, fica praticamente assim:
public class Midia {
// argumentos da classe
List<Ator> atores;
List<Diretor> diretores;
// getters e setters
}
Quando criares o objeto Midia, podes setar uma Lista de atores e diretores, eu diria inclusive que pode remover os setters e criar tudo via construtor, pois eu vejo essa classe como algo imutavél, já que um Midia não pode ser alterada, concorda? Ou seja, não posso simplesmente no meio do programa e dizer que a Midia "Velozes e Furiosos" tem um novo ator inserido, concorda ? É uma sugestão :)
De qualquer forma, tendo disponível essas listas e outras informações, basta recuperar as mesmas quando fores persistir o objeto Midia em arquivo.
Espero ter ajudado.
Abraços.