----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)
Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br
----------------------------------------------------------------------
package estudos;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Estudos {
public static void main(String[] args) {
// vamos construir uma instância da classe BufferedReader
// para ler o arquivo de entrada
BufferedReader arquivo_notas_alunos = null;
// vamos construir uma instância da classe BufferedWriter
// para escrever no arquivo de aprovados
BufferedWriter arquivo_aprovados = null;
// vamos construir uma instância da classe BufferedWriter
// para escrever no arquivo de reprovados
BufferedWriter arquivo_reprovados = null;
// nomes e locais dos arquivos
String notas_alunos = "C:\\estudos_java\\notas_alunos.txt";
String alunos_aprovados = "C:\\estudos_java\\notas_alunos_aprovados.txt";
String alunos_reprovados = "C:\\estudos_java\\notas_alunos_reprovados.txt";
// vamos ler o conteúdo do arquivo de entrada, uma linha
// de cada vez
String linha;
try {
// agora abrimos o arquivo de entrada
arquivo_notas_alunos = new BufferedReader(new FileReader(notas_alunos));
// abrimos também o arquivo de saída alunos aprovados
arquivo_aprovados = new BufferedWriter(new FileWriter(alunos_aprovados));
// e também o arquivo de saída alunos reprovados
arquivo_reprovados = new BufferedWriter(new FileWriter(alunos_reprovados));
// enquanto houver linhas a serem lidas
while((linha = arquivo_notas_alunos.readLine()) != null){
// agora precisamos tratar os campos do arquivo
// o campo nome contém 20 caracteres
String nome = linha.substring(0, 22);
// o campo N1 contém 6 caracteres
// precisamos retirar os espaços deste campo e trocar a vírgula
// pelo ponto
String n1_string = linha.substring(22, 26);
double n1 = Double.parseDouble(n1_string.trim().replace(",", "."));
// o campo N2 contém 6 caracteres
// precisamos retirar os espaços deste campo e trocar a vírgula
// pelo ponto
String n2_string = linha.substring(26, 32);
double n2 = Double.parseDouble(n2_string.trim().replace(",", "."));
// agora vamos calcular a média do aluno
double media = (n1 + n2) / 2;
// precisamos configurar a string da média
String media_string = String.format("%1$,6.1f", media);
// o aluno foi aprovado?
if(media >= 7.0){
// vamos escrever no arquivo de aprovados
arquivo_aprovados.write(nome + n1_string +
n2_string + media_string + "\r\n");
}
else{
// vamos escrever no arquivo de reprovados
arquivo_reprovados.write(nome + n1_string +
n2_string + media_string + "\r\n");
}
}
// fecha o arquivo de saída dos reprovados
arquivo_reprovados.close();
// fecha o arquivo de saída dos aprovados
arquivo_aprovados.close();
// fecha o arquivo de entrada
arquivo_notas_alunos.close();
// mostra uma mensagem de sucesso
System.out.println("Arquivos gerados com sucesso.");
}
catch (FileNotFoundException e) {
System.err.println("\nArquivo não encontrado\n");
}
catch (IOException e) {
System.err.println("\nNão foi possível abrir o arquivo\n");
}
}
}