Gravação de Arquivos txt

5 respostas
marcelo.tec

Bem galera estou com programa simples e preciso toda vez que rodar ele, deve carregar os dados gravados do arquvo .txt e quando sair ele atualizar o arquivo para que eu não perca nenhuma alteração. Alguém pode me ajudar a fazer isso obrigado.

Segue o código:

import java.util.*;

public class Aplicacao {
	static Scanner sc = new Scanner(System.in);
	// Criando a lista
	// ArrayList<Professor> listaProf = new ArrayList();
	// TreeSet<Professor> listaProf = new TreeSet();
	static HashMap listaProf = new HashMap();

	public static void main(String[] args) {
		telaPrincipal();

	}

	public static void telaPrincipal() {
		System.out.println("Digite sua OPÇÃO:\n");
		System.out.println("0 : Incluir Professor.");
		System.out.println("1 : Excluir Professor.");
		System.out.println("2 : Consultar Professor.");
		System.out.println("3 : Alterar Professor.");
		System.out.println("4 : Sair do Programa.");
		int op = sc.nextInt();

		switch (op) {
		case 0:
			incluirProf();
		case 1:
			excluirProf();
		case 2:
			consultarProf();
		case 3: 
			alterarProf();
		case 4:
			System.exit(0);

		}
	}

	public static void incluirProf() {
		while (true) {
			Scanner sc = new Scanner(System.in);
			Professor prof = new Professor();

			System.out.print("Digite a matrícula do Professor: ");
			int matricula = sc.nextInt();
			prof.setMatricula(Integer.valueOf(matricula));
			System.out.print("Digite o nome do Professor: ");
			String nome = sc.next();
			prof.setNome(nome);
			System.out.print("Digite o telefone do Professor: ");
			String telefone = sc.next();
			prof.setTelefone(telefone);
			System.out.print("Digite o turno do Professor: ");
			String turno = sc.next();
			prof.setTurno(turno);
			System.out.print("Digite o salário do Professor: ");
			String salario = sc.next();
			prof.setSalario(salario);
			// Coloco na lista
			listaProf.put(matricula, prof);

			System.out.println("Para sair digite FIM ou 1 para continuar: ");
			String saida = sc.next();
			if (saida.equals("FIM"))
				telaPrincipal();

		}

	}

	public static void consultarProf() {
		Scanner sc = new Scanner(System.in);
		while (true) {
			try {
				System.out.println("Digite a matrícula do Professor:\n");
				int matricula = sc.nextInt();
				Professor prof = (Professor) listaProf.get(matricula);

				System.out.println("\nA matrícula do Professor é: "
						+ prof.getMatricula() + "\nO nome do Professor é: "
						+ prof.getNome() + "\nO telefone do Professor é: "
						+ prof.getTelefone() + "\nO turno do Professor é: "
						+ prof.getTurno() + "\nO salário do Professor é: "
						+ prof.getSalario());

				System.out.println("Para sair digite FIM ou 1 para continuar: ");
				String saida = sc.next();
				if (saida.equals("FIM"))
					telaPrincipal();
			} catch (NullPointerException ex) {
				System.out.println("Matrícula Inexistente");
				telaPrincipal();
		}
		}
	}

	public static void excluirProf() {
		Scanner sc = new Scanner(System.in);
		while (true) {
			try {
			System.out.println("Digite a matrícula do Professor que deseja excluir:\n");
			int matricula = sc.nextInt();
			Professor prof = (Professor) listaProf.get(matricula);
			listaProf.remove(matricula);

			System.out.println("Para sair digite FIM ou 1 para continuar: ");
			String saida = sc.next();
			if (saida.equals("FIM"))
				telaPrincipal();
		
			} catch (NullPointerException ex) {
				System.out.println("Matrícula Inexistente");
				excluirProf();
		}
	}
}
	
	public static void alterarProf() {
		while (true) {
			Scanner sc = new Scanner(System.in);
			Professor prof = new Professor();

			System.out.print("Digite a matrícula do Professor que deseja alterar: ");
			int matricula = sc.nextInt();
			prof.setMatricula(Integer.valueOf(matricula));
			System.out.print("Digite o nome do Professor: ");
			String nome = sc.next();
			prof.setNome(nome);
			System.out.print("Digite o telefone do Professor: ");
			String telefone = sc.next();
			prof.setTelefone(telefone);
			System.out.print("Digite o turno do Professor: ");
			String turno = sc.next();
			prof.setTurno(turno);
			System.out.print("Digite o salário do Professor: ");
			String salario = sc.next();
			prof.setSalario(salario);
			// Coloco na lista
			listaProf.put(matricula, prof);

			System.out.println("Para sair digite FIM ou 1 para continuar: ");
			String saida = sc.next();
			if (saida.equals("FIM"))
				telaPrincipal();

		}

	}
	
	
}

5 Respostas

C

O código abaixo dá um append no arquivo texto, ou seja, insere mais dados sem apagar os que já existem.

try{               
                       File destino = new File(<<String do destino do arquivo>> );
			FileWriter fw = new FileWriter( destino, true );
			PrintWriter ps = new PrintWriter( fw, true );
			ps.println( <<os dados que deseja salvar>> );
         }catch( IOException e }
         {
                 e.printStackTrace();
         }

Lembrando que a String de destino do arquivo é o caminho completo para ele, tipo: “C:\testes\guj\meutxt.txt”

C

E não esqueça do import para java.io.* no começo do seu código!

marcelo.tec

Carnevalli:
O código abaixo dá um append no arquivo texto, ou seja, insere mais dados sem apagar os que já existem.

try{               
                       File destino = new File(<<String do destino do arquivo>> );
			FileWriter fw = new FileWriter( destino, true );
			PrintWriter ps = new PrintWriter( fw, true );
			ps.println( <<os dados que deseja salvar>> );
         }catch( IOException e }
         {
                 e.printStackTrace();
         }

Lembrando que a String de destino do arquivo é o caminho completo para ele, tipo: “C:\testes\guj\meutxt.txt”

mas onde eu faço isso onde no final da classe ?

C

Dentro de um método que você deseja chamar quando for salvar os dados…

marcelo.tec

Carnevalli:
O código abaixo dá um append no arquivo texto, ou seja, insere mais dados sem apagar os que já existem.

try{               
                       File destino = new File(<<String do destino do arquivo>> );
			FileWriter fw = new FileWriter( destino, true );
			PrintWriter ps = new PrintWriter( fw, true );
			ps.println( <<os dados que deseja salvar>> );
         }catch( IOException e }
         {
                 e.printStackTrace();
         }

Lembrando que a String de destino do arquivo é o caminho completo para ele, tipo: “C:\testes\guj\meutxt.txt”

blz gravar estou conseguindo agora mas ler o arquivo quando é carregado não consigo.

Criado 24 de março de 2008
Ultima resposta 24 de mar. de 2008
Respostas 5
Participantes 2