Files
gitEmprego/TrabalhoFicheiros/src/main/java/com/mycompany/trabalhoficheiros/TrabalhoFicheiros.java
2026-06-08 09:04:18 +01:00

389 lines
9.6 KiB
Java

/*
* 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("*******************************************************");
}
}