1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

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

Discussão em 'Programação' iniciada por Sky_Boy_, 6 de Janeiro de 2009. (Respostas: 3; Visualizações: 904)

  1. Sky_Boy_

    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
     
  2. Baderous

    Baderous Banido

    Podes usar uma das várias streams de Java, ou até várias aninhadas, para escreveres o output para um ficheiro.
     
  3. Sky_Boy_

    Sky_Boy_ Power Member

    nao me podes arranjar um exemplo pratico sff...?

    eu nc tive grande formação em java e a parte dos ficheiros n e de todo o meu forte. . .

    cumps
     

Partilhar esta Página