/* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license */ package com.mycompany.trabalhoficheiros; import java.util.Scanner; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.Scanner; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author 250418 */ public class TrabalhoFicheiros { public static void main(String[] args) { //Vaga de Emprego Scanner scanner = new Scanner(System.in); System.out.println("╔════════════════════════════════════╗"); System.out.println("║ ║"); System.out.println("║ 🚛 CARGOWAVE 🚛 ║"); System.out.println("║ ║"); System.out.println("║ Transporte & Logística ║"); System.out.println("║ ║"); System.out.println("╚════════════════════════════════════╝"); System.out.println("╔══════════════════════════════════════════════╗"); System.out.println("║ ║"); System.out.println("║ Candidate-se a vaga de camioneiro ║"); System.out.println("║ ║"); System.out.println("╚══════════════════════════════════════════════╝"); while(true){ System.out.println("Selecione uma das opções:\n" + "|-------------------------------------|\n" + "|1 - Candidatar-se |\n" + "|-------------------------------------|\n" + "|2 - Consultar todos os candidatos |\n" + "|-------------------------------------|\n" ); int opcao = scanner.nextInt(); switch(opcao){ case 1 -> inserirDados(); case 2 -> mostrarTodosCandidatos(); default -> System.out.println("Opção inválida"); } } } private static void mostrarTodosCandidatos() { String nomeFicheiro = "inscritos.txt"; String nome[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; String idade[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; String morada[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; String email[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; String experiencia[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; leExtraiCsvFicheiro(nomeFicheiro, nome, idade, morada, email, experiencia); for (int i = 0; i < nome.length; i++) { System.out.println("Nome: " + nome[i]); System.out.println("Idade: " + idade[i]); System.out.println("Morada: " + morada[i]); System.out.println("Email:" + email[i]); System.out.println("Anos de experiência: " + experiencia[i] + "\n"); } } private static void extraiDadosCsv(String[] nome, String[] idade, String[] morada, String[] email, String[] experiencia, int numeroLinha, String linha) { int posicaoUltimaVirgula = -1; int numeroVirgulas = 0; for (int i = 0; i < linha.length(); i++) { if (linha.charAt(i) == ',') { System.out.println(linha.substring(posicaoUltimaVirgula + 1, i)); switch (numeroVirgulas) { case 0 -> nome[numeroLinha] = linha.substring(posicaoUltimaVirgula + 1, i); case 1 -> idade[numeroLinha] = linha.substring(posicaoUltimaVirgula + 1, i); case 2 -> morada[numeroLinha] = linha.substring(posicaoUltimaVirgula + 1, i); case 3 -> { email[numeroLinha] = linha.substring(posicaoUltimaVirgula + 1, i); experiencia[numeroLinha] = linha.substring(i + 1); } } posicaoUltimaVirgula = i; numeroVirgulas++; } } } private static void escreveNoFicheiro(String texto, String nomeFicheiro) { FileWriter fileWriter = null; try { fileWriter = new FileWriter(new File(nomeFicheiro)); BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); bufferedWriter.write(texto); bufferedWriter.close(); fileWriter.close(); } catch (IOException ex) { Logger.getLogger(TrabalhoFicheiros.class.getName()).log(Level.SEVERE, null, ex); } } private static String leFicheiro(String nomeFicheiro) { FileReader fileReader = null; String textoLido = ""; try { fileReader = new FileReader(new File(nomeFicheiro)); BufferedReader bufferedReader = new BufferedReader(fileReader); String linha = ""; while ((linha = bufferedReader.readLine()) != null) { textoLido += linha + "\n"; } bufferedReader.close(); fileReader.close(); } catch (FileNotFoundException ex) { escreveNoFicheiro("", nomeFicheiro); } catch (IOException ex) { Logger.getLogger(TrabalhoFicheiros.class.getName()).log(Level.SEVERE, null, ex); } return textoLido; } private static String leExtraiCsvFicheiro(String nomeFicheiro, String[] nome, String[] idade, String[] morada, String[] email, String[] experiencia) { FileReader fileReader = null; String textoLido = ""; try { fileReader = new FileReader(new File(nomeFicheiro)); BufferedReader bufferedReader = new BufferedReader(fileReader); String linha = ""; int numeroLinha = 0; while ((linha = bufferedReader.readLine()) != null) { extraiDadosCsv(nome, idade, morada, email, experiencia, numeroLinha, linha); numeroLinha++; } bufferedReader.close(); fileReader.close(); } catch (FileNotFoundException ex) { escreveNoFicheiro("", nomeFicheiro); } catch (IOException ex) { Logger.getLogger(TrabalhoFicheiros.class.getName()).log(Level.SEVERE, null, ex); } return textoLido; } private static int getNumeroLinhasFicheiro(String nomeFicheiro) { FileReader fileReader = null; int numeroLinhas = 0; try { fileReader = new FileReader(new File(nomeFicheiro)); BufferedReader bufferedReader = new BufferedReader(fileReader); String linha = ""; while ((linha = bufferedReader.readLine()) != null) { numeroLinhas++; } bufferedReader.close(); fileReader.close(); } catch (FileNotFoundException ex) { escreveNoFicheiro("", nomeFicheiro); } catch (IOException ex) { Logger.getLogger(TrabalhoFicheiros.class.getName()).log(Level.SEVERE, null, ex); } return numeroLinhas; } private static void adicionaTextoAoFicheiro(String texto, String nomeFicheiro) { String textoAntigo = leFicheiro(nomeFicheiro); String textoNovo = textoAntigo + texto; escreveNoFicheiro(textoNovo, nomeFicheiro); } private static void inserirDados(){ Scanner scanner = new Scanner(System.in); System.out.println("Insira o seu nome"); String nome = scanner.nextLine(); System.out.println("Insira sua idade"); int idade = scanner.nextInt(); scanner.nextLine(); if (idade < 25) { System.out.println("não está apto para a vaga"); return; } System.out.println("Insira sua morada"); String morada = scanner.nextLine(); System.out.println("Insira seu email"); String email = scanner.nextLine(); System.out.println("Insira quantos anos tens de experiência"); String experiencia = scanner.nextLine(); String dados = nome + "," + idade + "," + morada + "," + email + "," + experiencia + "\n"; adicionaTextoAoFicheiro(dados, "inscritos.txt"); System.out.println("*******************************************************"); System.out.println("* *"); System.out.println("* Dentro de 7 dias uma resposta chegará no seu email *"); System.out.println("* *"); System.out.println("*******************************************************"); } }