public void carregaInteressesDeProfessoresPorDisciplinasDeArquivo(
			String nomeArquivo) throws PreferenciaInvalidaException,
			ProfessorInexistenteException, DisciplinaInexistenteException,
			IOException {

		BufferedReader leitor = null;
		try {
			leitor = new BufferedReader(new FileReader(nomeArquivo));
			String matriculaPro = "";
			do {
				matriculaPro = leitor.readLine(); // lê a próxima linha do
													// arquivo, disciplina
				if (matriculaPro != null) {

					String disciplinasP1 = leitor.readLine();// Lê a próxima
																// linha do
																// arquivo,
																// disciplina e
																// o nivel de
																// interesse
					for (String codDisciplina : this
							.leListaDeCodigosDeDisciplinasDeLinha(disciplinasP1)) {
						this.cadastraNivelDeInteresseDeProfessorPorDisciplina(
								matriculaPro, codDisciplina, Professor.PREF_P1);
					}
					String disciplinasP2 = leitor.readLine();// Lê a próxima
																// linha do
																// arquivo,
																// disciplina e
																// o nivel de
																// interesse
					for (String codDisciplina : this
							.leListaDeCodigosDeDisciplinasDeLinha(disciplinasP2)) {
						this.cadastraNivelDeInteresseDeProfessorPorDisciplina(
								matriculaPro, codDisciplina, Professor.PREF_P2);
					}
					String disciplinasP3 = leitor.readLine();// Lê a próxima
																// linha do
																// arquivo,
																// disciplina e
																// o nivel de
																// interesse
					for (String codDisciplina : this
							.leListaDeCodigosDeDisciplinasDeLinha(disciplinasP3)) {
						this.cadastraNivelDeInteresseDeProfessorPorDisciplina(
								matriculaPro, codDisciplina, Professor.PREF_P3);
					}
					String disciplinasNP = leitor.readLine();// Lê a próxima
																// linha do
																// arquivo,
																// disciplina e
																// o nivel de
																// interesse
					for (String codDisciplina : this
							.leListaDeCodigosDeDisciplinasDeLinha(disciplinasNP)) {
						this.cadastraNivelDeInteresseDeProfessorPorDisciplina(
								matriculaPro, codDisciplina, Professor.PREF_NP);
					}
				}
			} while (matriculaPro != null); // vai ser null quando chegar no fim
											// do arquivo
		}

		finally {
			if (leitor != null) {
				leitor.close();
			}
		}

	}