[Java] Gravar dados resultantes directamente num ficheiro, é possível?

Sky_Boy_

Power Member
Boas pessoal

Estou a ajudar uma amiga minha com um prog q ela tem para fazer para a disciplina de prog java I que consiste em pedir o numero de disciplinas ao utilizador, o nome das mesmas, as notas e de seguida devolver a media, a nota mais alta e a mais baixa, até aí consegui fazer tudo bem

Código:
import java.io.*;
import java.lang.String;

public class MTP3 {
	public static void main(String[] args) throws IOException {
		int numeroDisciplinas = 0;
	    int[] notas = null;
	    float somadisciplinas = 0f;
	    float mediadisciplinas = 0f;
	    String []disciplinas = null;
	    int notaDisciplinas = 0;
	    
	    BufferedReader teclado = new BufferedReader(
	            new InputStreamReader(System.in));
	    
	    System.out.print("Número de disciplinas: ");

	    try {
	      numeroDisciplinas = Integer.parseInt(teclado.readLine());
	    }
	    catch (NumberFormatException nfe) {
	      System.err.println("Por favor, introduza "
	          + "números inteiros!");
	      System.exit(-1);
	    }
	    catch (IOException ioe) {
	      System.err.println("Aconteceu um erro ao ler "
	          + "do teclado!");
	      System.exit(-2);
	    }
	    catch (Exception e) {
	      System.err.println("Aconteceu um erro estranho!");
	      e.printStackTrace();
	      System.exit(-3);
	    }
	  
	    disciplinas = new String[numeroDisciplinas];

	    System.out.println("\nAs disciplinas sao: ");
	    for (int i = 0; i < disciplinas.length; i++) {
	    	System.out.println("");
	      try {
	    	  disciplinas[i] = teclado.readLine();
	      }
	      catch (IOException ioe) {
	          System.err.println("Aconteceu um erro ao ler "
	              + "do teclado!");
	          System.exit(-1);
	        }
	        catch (Exception e) {
	          System.err.println("Aconteceu um erro estranho!");
	          e.printStackTrace();
	          System.exit(-2);
	        }
	    }
	    
	    notas = new int[numeroDisciplinas];
	    
	    System.out.println("Notas das Discplinas");
	    
	    for (int i = 0; i < notas.length; i++) {
	    	System.out.print("Nota de " + disciplinas[i] + ": ");
	    	
	        try {
	        	notas[i] = Integer.parseInt(teclado.readLine());
	          }
	          catch (NumberFormatException nfe) {
	            System.err.println("Por favor, introduza "
	                + "nœmeros inteiros!");
	            System.exit(-1);
	          }
	          catch (IOException ioe) {
	            System.err.println("Aconteceu um erro ao ler "
	                + "do teclado!");
	            System.exit(-2);
	          }
	          catch (Exception e) {
	            System.err.println("Aconteceu um erro estranho!");
	            e.printStackTrace();
	            System.exit(-3);
	          }
	        
	    }
	    
	    for (int i = 0; i < notas.length; i++) {
	    	
	        somadisciplinas += notas[i];
	      }

	    if (notas.length > 0) {
	    	
	    	mediadisciplinas = somadisciplinas / notas.length;
	    	System.out.println("A média das notas das disciplinas e " + mediadisciplinas + ".");
	    }

	     int notaDisciplinaPior = 0;
   
	     try {
	         notaDisciplinaPior = notas[DisciplinaPior(notas)];

	     }
	     catch (ArrayIndexOutOfBoundsException aioobe) {
	      System.err.println("A turma tem de ter pelo menos uma disciplina!");
	      }
	     catch (Exception e) {
	       System.err.println("Erro inesperado!");
	        e.printStackTrace();
	     }
	    System.out.println("A disciplina a que tem nota pior é " + notaDisciplinaPior + ".");
	      
	    int notaDisciplinaMelhor = 0; 
		
	    try {
	        notaDisciplinaPior = notas[DisciplinaMelhor(notas)];

	    	}
	    catch (ArrayIndexOutOfBoundsException aioobe) {
	   	System.err.println("A turma tem de ter pelo menos uma disciplina!");
	    }
	     catch (Exception e) {
		       System.err.println("Erro inesperado!");
		        e.printStackTrace();
		     }
		    System.out.println("A disciplina a que tem nota melhor é " + notaDisciplinaMelhor + ".");
}
    public static int DisciplinaMelhor(int[] notas)throws ArrayIndexOutOfBoundsException {
        int disciplinaMelhor = 0;
        for (int i = 1; i < notas.length; i++) {
          if (notas[i] < disciplinaMelhor) {
          	disciplinaMelhor = i;
          }
        }
        return disciplinaMelhor;
      }
    public static int DisciplinaPior(int[] notas)throws ArrayIndexOutOfBoundsException {
        int disciplinaPior = 0;
        for (int i = 1; i < notas.length; i++) {
          if (notas[i] < disciplinaPior) {
          	disciplinaPior = i;
          }
        }
        return disciplinaPior;
      }
    }

Agora a minha duvida e o seguinte....e possivel gravar o que e devolvido na consola directamente para um ficheiro ou isso tera de ser feito ao longo do codigo? eu conheço mais ou menos o metodo printstream mas nao o consegui aplicar....


se alguem me conseguir ajudar agradecia

cumps
 
Back
Topo