commit a020b5e233407455f9f7069bf6d469ab08df989c Author: 250418 <250418@192.168.60.169> Date: Thu May 7 15:35:23 2026 +0100 Primeiro commit diff --git a/src/main/java/com/mycompany/trabalhoficheiros/TrabalhoFicheiros.java b/src/main/java/com/mycompany/trabalhoficheiros/TrabalhoFicheiros.java new file mode 100644 index 0000000..926bb30 --- /dev/null +++ b/src/main/java/com/mycompany/trabalhoficheiros/TrabalhoFicheiros.java @@ -0,0 +1,222 @@ +/* + * 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("Canditate-se a vaga de camioneiro"); + 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() { + Scanner scanner = new Scanner(System.in); + String nomeFicheiro = "inscritos.txt"; + + String nome[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String idade[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String morada[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String experiencia[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + + leExtraiCsvFicheiro(nomeFicheiro, nome, idade, morada, 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("Anos de experiência: " + experiencia[i] + "\n"); + } + + } + + private static void extraiDadosCsv(String[] nome, + String[] experiencia, + String[] morada, + String[] idade, + 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); + 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[] 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, 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(); + + 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(); + + System.out.println("Dentro de 7 dias uma resposta chegará no seu email"); + +} + + + } + +//-calcular data +//-inserir email +//-se estiver apto para a vaga, dentro de 7 dias chegará uma resposta em seu email. \ No newline at end of file