Como faço para escrever dados de um ArrayList para um arquivo txt (Além de fazer a Leitura do arquivo ao iniciar o programa)?

1 resposta
filearraylistjavaarray
M

Repositório Github do Projeto Completo

/*Uma empresa de recursos humanos, especializada em recolocações no mercado(vagas de emprego), solicita a criação de um sistema para informatizar suas ações.Assim, ela deseja cadastrar os candidatos com seu nome (String) e idade (int). Oscandidatos podem ser desempregados, que tem o tempo em meses (int) que nãotrabalha ou empregados, que tem o nome da empresa (String), onde está atualmente.As vagas tem a descrição (String) e o salário oferecido (double). As vagas podem serde estágio, que em o tempo em meses (int) ou contrato, que pode ser temporário ounão (boolean). Criar um programa em Java para cadastrar os candidatos desempregados ou empregados) e cadastrar as vagas (estágio ou contrato). Osistema deve ser capaz de cadastrar os candidatos para as vagas. Criar uma classe para criar a empresa de RH (main). Nesta classe deverá haver ummenu para cadastrar candidatos, cadastrar vagas, cadastrar candidato x vaga, listarvagas por tipo, mostrar quantidade de candidatos e sua situação e os candidatos x vaga. Autor: Matheus Vilela Diniz Maia Main EmpresaRH */
https://github.com/matigous/RhJob
import java.util.Scanner;
import java.util.ArrayList;

public class EmpresaRH {

    public static void main(String[] args) {
        Scanner readNum = new Scanner(System.in);
        Scanner readStr = new Scanner(System.in);
        String ok = "";
        ArrayList<CandidatoEmpregado> candidatoEmpregado = new ArrayList<CandidatoEmpregado>();
        ArrayList<CandidatoDesempregado> candidatoDesempregado = new ArrayList<CandidatoDesempregado>();
        ArrayList<VagaEstagio> vagaEstagio = new ArrayList<VagaEstagio>();
        ArrayList<VagaContrato> vagaContrato = new ArrayList<VagaContrato>();
        ArrayList<CandidatoEmpregado_VagaEstagio> candidatoEmpregado_vagaEstagio_Obj = new ArrayList<CandidatoEmpregado_VagaEstagio>();
        ArrayList<CandidatoEmpregado_VagaContrato> candidatoEmpregado_vagaContrato_Obj = new ArrayList<CandidatoEmpregado_VagaContrato>();
        ArrayList<CandidatoDesempregado_VagaEstagio> candidatoDesempregado_vagaEstagio_Obj = new ArrayList<CandidatoDesempregado_VagaEstagio>();
        ArrayList<CandidatoDesempregado_VagaContrato> candidatoDesempregado_vagaContrato_Obj = new ArrayList<CandidatoDesempregado_VagaContrato>();

        do {
            System.out.printf(
                    "\nCadastrar Candidato (1) / Cadastrar Vaga (2) / Cadastrar Candidato x Vaga (3) / Listar Vagas p/ Tipo (4) / Qt de Cadidatos e Situacao (5) / Cadidato p/ Vaga (6): ");
            switch (readNum.nextInt()) {
            case 1: /* cadastrar candidatos */
                System.out.printf("\nEmpregado (1) / Desempregado (2): ");
                int estado = readNum.nextInt();
                System.out.printf("Nome Candidato: ");
                String nome = readStr.nextLine();
                System.out.printf("Idade Candidato: ");
                int idade = readNum.nextInt();
                if (estado == 1) {
                    System.out.printf("Empresa Atual: ");
                    String empresaAtual = readStr.nextLine();
                    candidatoEmpregado.add(new CandidatoEmpregado(nome, idade, empresaAtual));
                } else if (estado == 2) {
                    System.out.printf("Tempo desempregado: ");
                    int mesesSemTrabalho = readNum.nextInt();
                    candidatoDesempregado.add(new CandidatoDesempregado(nome, idade, mesesSemTrabalho));
                } else {
                    System.out.println("Escolha Invalida! ");
                    break;
                }
                break;
            case 2: /* cadastrar vagas */
                System.out.printf("\nVaga Estagio (1) / Vaga Contrato (2): ");
                int estado2 = readNum.nextInt();
                System.out.printf("Descricao da Vaga: ");
                String descricao = readStr.nextLine();
                System.out.printf("Salario da Vaga: ");
                double salario = readNum.nextDouble();
                if (estado2 == 1) {
                    System.out.printf("Duracao (meses): ");
                    int tempoMes = readNum.nextInt();
                    vagaEstagio.add(new VagaEstagio(descricao, salario, tempoMes));
                } else if (estado2 == 2) {
                    System.out.printf("Eh temporaria (Sim > (1)) (Nao > (0)): ");
                    boolean ehTemporario = (readNum.nextInt() == 1) ? true : false;
                    vagaContrato.add(new VagaContrato(descricao, salario, ehTemporario));
                } else {
                    System.out.println("Escolha Invalida! ");
                    break;
                }
                break;
            case 3: /* cadastrar candidato x vaga */
                System.out.printf("\nCadastrar Cand. Empregado (1) ou Desempregado (2) p/ a Vaga: ");
                int escolha1 = readNum.nextInt();
                // Empregado
                if (escolha1 == 1) {
                    for (int i = 0; i < candidatoEmpregado.size(); i++) {
                        System.out.printf("(Cadiadato Empregado (" + (i + 1) + ") nome: "
                                + candidatoEmpregado.get(i).getNome() + ") ");
                    }
                    System.out.printf("\nEscolha o n do Candidato: ");
                    int numeroCandidatoEmpregado = readNum.nextInt();
                    System.out.printf("Cadastrar p/ Estagio (1) ou Contrato (2): ");
                    int escolha2 = readNum.nextInt();
                    /* Estagio */
                    if (escolha2 == 1) {
                        for (int i = 0; i < vagaEstagio.size(); i++) {
                            System.out.printf("(Vaga Estagio (" + (i + 1) + ") nome: "
                                    + vagaEstagio.get(i).getDescricao() + ") ");
                        }
                        System.out.printf("\nEscolha o n da Vaga: ");
                        int numeroVagaEstagio = readNum.nextInt();
                        candidatoEmpregado_vagaEstagio_Obj.add(
                                new CandidatoEmpregado_VagaEstagio(candidatoEmpregado.get(numeroCandidatoEmpregado - 1),
                                        vagaEstagio.get(numeroVagaEstagio - 1)));
                    } /* Contrato */ else if (escolha2 == 2) {
                        for (int i = 0; i < vagaContrato.size(); i++) {
                            System.out.printf("(Vaga Contrato (" + (i + 1) + ") nome: "
                                    + vagaContrato.get(i).getDescricao() + ") ");
                        }
                        System.out.printf("\nEscolha o n da Vaga: ");
                        int numeroVagaContrato = readNum.nextInt();
                        candidatoEmpregado_vagaContrato_Obj.add(new CandidatoEmpregado_VagaContrato(
                                candidatoEmpregado.get(numeroCandidatoEmpregado - 1),
                                vagaContrato.get(numeroVagaContrato - 1)));
                    } else {
                        System.out.println("Escolha Invalida! ");
                        break;
                    }
                    // Desempregado
                } else if (escolha1 == 2) {
                    for (int i = 0; i < candidatoDesempregado.size(); i++) {
                        System.out.printf("(Cadiadato Desempregado (" + (i + 1) + ") nome: "
                                + candidatoDesempregado.get(i).getNome() + ") ");
                    }
                    System.out.printf("\nEscolha o n do Candidato: ");
                    int numeroCandidatoDesempregado = readNum.nextInt();
                    System.out.printf("Cadastrar p/ Estagio (1) ou Contrato (2): ");
                    int escolha3 = readNum.nextInt();
                    /* Estagio */
                    if (escolha3 == 1) {
                        for (int i = 0; i < vagaEstagio.size(); i++) {
                            System.out.printf("(Vaga Estagio (" + (i + 1) + ") nome: "
                                    + vagaEstagio.get(i).getDescricao() + ") ");
                        }
                        System.out.printf("\nEscolha o n da Vaga: ");
                        int numeroVagaEstagio = readNum.nextInt();
                        candidatoDesempregado_vagaEstagio_Obj.add(new CandidatoDesempregado_VagaEstagio(
                                candidatoDesempregado.get(numeroCandidatoDesempregado - 1),
                                vagaEstagio.get(numeroVagaEstagio - 1)));
                    } /* Contrato */ else if (escolha3 == 2) {
                        for (int i = 0; i < vagaContrato.size(); i++) {
                            System.out.printf("(Vaga Contrato (" + (i + 1) + ") nome: "
                                    + vagaContrato.get(i).getDescricao() + ") ");
                        }
                        System.out.printf("\nEscolha o n da Vaga: ");
                        int numeroVagaContrato = readNum.nextInt();
                        candidatoDesempregado_vagaContrato_Obj.add(new CandidatoDesempregado_VagaContrato(
                                candidatoDesempregado.get(numeroCandidatoDesempregado - 1),
                                vagaContrato.get(numeroVagaContrato - 1)));
                    } else {
                        System.out.println("Escolha Invalida! ");
                        break;
                    }
                } else {
                    System.out.println("Escolha Invalida! ");
                    break;
                }

                break;
            case 4: /* listar vagas por tipo */
                System.out.print("\nVaga Estagio (1) / Vaga Contrato (2): ");
                int escolha4 = readNum.nextInt();
                if (escolha4 == 1) {
                    for (int i = 0; i < vagaEstagio.size(); i++) {
                        System.out.printf(
                                "(Vaga Estagio (" + (i + 1) + ") nome: " + vagaEstagio.get(i).getDescricao() + ") \n");
                    }
                } else if (escolha4 == 2) {
                    for (int i = 0; i < vagaContrato.size(); i++) {
                        System.out.printf(
                                "(Vaga Contrato (" + (i + 1) + ") nome: " + vagaContrato.get(i).getDescricao() + ") ");
                    }
                } else {
                    System.out.println("Escolha Invalida! ");
                    break;
                }
                break;
            case 5: /* mostrar quantidade de candidatos e sua situação */
                for (int i = 0; i < candidatoEmpregado.size(); i++) {
                    System.out.printf("\n(Cadiadato Empregado " + (i + 1) + " > nome: "
                            + candidatoEmpregado.get(i).getNome() + ") ");
                }
                for (int i = 0; i < candidatoDesempregado.size(); i++) {
                    System.out.printf("\n(Cadiadato Desempregado " + (i + 1) + " > nome: "
                            + candidatoDesempregado.get(i).getNome() + ") ");
                }
                break;
            case 6: /* Candidato por Vaga */
                if (candidatoEmpregado_vagaEstagio_Obj.size() > 0) {
                    for (int i = 0; i < candidatoEmpregado_vagaEstagio_Obj.size(); i++) {
                        System.out.printf("\n"+candidatoEmpregado_vagaEstagio_Obj.get(i));
                    }
                }
                if (candidatoDesempregado_vagaEstagio_Obj.size() > 0) {
                    for (int i = 0; i < candidatoDesempregado_vagaEstagio_Obj.size(); i++) {
                        System.out.printf("\n"+candidatoDesempregado_vagaEstagio_Obj.get(i));
                    }
                }
                if (candidatoEmpregado_vagaContrato_Obj.size() > 0) {
                    for (int i = 0; i < candidatoEmpregado_vagaContrato_Obj.size(); i++) {
                        System.out.printf("\n"+candidatoEmpregado_vagaContrato_Obj.get(i));
                    }
                }
                if (candidatoDesempregado_vagaContrato_Obj.size() > 0) {
                    for (int i = 0; i < candidatoDesempregado_vagaContrato_Obj.size(); i++) {
                        System.out.printf("\n"+candidatoDesempregado_vagaContrato_Obj.get(i));
                    }
                }
                System.out.println();
                break;
            default:
                System.out.println("Error!");
            }
            System.out.println();
            System.out.printf("Continuar (Y/N): ");
            ok = readStr.nextLine();
            System.out.println();
        } while (ok.equalsIgnoreCase("Y"));


    }

}

1 Resposta

M

É o seguinte matheus, para você fazer a escrita de um arquivo deve ser feita da seguinte forma:

File arquivo = new Filte("nomeArquivo.txt");
FileWriter writer = new FileWriter(arquivo);

Depois faça um for para percorrer seus array list colocando o que você deseja colocar no arquivo como exemplo:

for(VagaContrato vaga : vagaContrato){
writer.append(vaga.getSalario());
writer.append(",");
writer.append(vaga.getEhTemporario());
writer.append("/n");
}
writer.flush();
writer.close();

Para ler é uma lógica parecida mas ao invés de usar o file writer deve usar o File Reader e o BufferedReader:

FilerReader fileReader = new FileReader(arquivo);
BufferedReader reader = new BufferedReader(fileReader);

String linha;
while(linha = reader.readLine()) != null){
.....
}
Criado 22 de abril de 2019
Ultima resposta 24 de abr. de 2019
Respostas 1
Participantes 2