Listener e banco

Boa noite caros amigos!

            Seguinte, pesquisei tanto já sobre como fazer minha modelagem que não sei mais onde ir.
            1) Tenho que fazer uma aplicação que fique lendo uma pasta constantemente, para ver se acha um .txt e leia ele. Entendem? Se agora tiver um .txt esta aplicação vai ler se que o usuário tenha que executá-la.

Como fazer isto? Alguma ideia?
2) Outra parte deste funciona, por exemplo: tenho uma base de dados, esta base contém informações para arquitetos, advogados, engenheiros, programadores, psicólogas. Será um sistema que vai retornar dados numas telas, apenas para consulta.
Se o usuário advogado entrar, somente irá mostrar os dados relevantes para ele, o dos programadores não. Entendem? Mas serão apenas selects no banco. Como posso fazer isto? Não posso encher meu código Java de if’s, né?

Se alguém tiver alguma sugestão, agradecido.

Aguardo.

  1. Crie uma Tread e deixe ela ficar verificando de tempos em tempos se foi colocado algum arquivo, em caso afirmativo, leia o arquivo.

  2. No segundo caso, se todos os tipos de usuários estiverem sendo persistidos na mesma tabela, acredito que você não fujirá dos if’s. Você pode procurar algum Design Pattern para resolvero excesso de if’s mas mesmo com algum Pattern vai ter alguns if’s.

Existe um tópico até recente sobre isso, pesquise.