Problema - java.lang.NullPointerException

1 resposta
G
package tp01.organização;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Random;

public class TP01Organização {
    
    public class Livro{
        int nota;
        int nLeituras;
        String Nome;
    }
    
    
    public static void main(String[] args) throws FileNotFoundException, IOException{
        TP01Organização p = new TP01Organização();
        
    }
    
    public TP01Organização() throws FileNotFoundException, IOException{
        /*Opcode das instruções:
	-1: imprime todo o conteúdo da memória de Livros!!!!(Livros)
	0: imprime conteúdo do MAR(simula busca de livro)
	1: Melhor nota
	2: Numero de vezes que foi lido
        3: Termina
        */
        String[] memoriaInst;
        Livro[] memoriaDados = new Livro[100];
        int PC=0;
        int IR = -1; //opcode 
        int MAR1 = -1; //endereco
        int MAR2 = -1; //endereco
        String MBR = "";
        Livro MQ1 = new Livro();
        Livro MQ2 = new Livro();
        
        memoriaDados = gerarMemoriaDados();
        memoriaInst = gerarMemoriaInst();

        //começa o programa
        while (IR!=4){
                MBR = memoriaInst[PC];

                String[] aux = MBR.split(":");

                IR = Integer.parseInt(aux[0]);
                MAR1 = Integer.parseInt(aux[1]);
                MAR2 = Integer.parseInt(aux[2]);

                switch (IR){
                        case -1: {
                                System.err.println("Livros Disponiveis");
                                for(Livro Livro: memoriaDados)
                                        System.err.println(Livro.Nome);
                                break;
                        }
                        case 0: {
                                System.err.println(memoriaDados[MAR1]);
                                System.err.println(memoriaDados[MAR2]);
                                break;
                        }
                        case 1: {
                                MQ1 = memoriaDados[MAR1];
                                MQ2 = memoriaDados[MAR2];
                                if(MQ1.nota > MQ2.nota ){
                                    System.err.println("Maior nota:" + MQ1.Nome);
                                }else System.err.println("Maior nota:" + MQ2.Nome);
                                break;
                        }
                        case 2: {
                                MQ1 = memoriaDados[MAR1];
                                MQ2 = memoriaDados[MAR2];
                                if(MQ1.nLeituras > MQ2.nLeituras ){
                                    System.err.println("Lido mais vezes :" + MQ1.Nome);
                                }else System.err.println("Lido mais vezes :" + MQ2.Nome);
                                break;
                        }
                }

                PC++;
        }
    }
    
    private String[] gerarMemoriaInst(){
        
        String[] memoria = {"1:6:5", "2:7:6", "2:13:4", "3:6:3", "1:6:1", "2:18:5", "2:0:8", "3:6:32", "1:8:52", "2:22:52", "3:15:22", "0:6:12", "0:15:34", "-1:-1:-2", "4:-1:-2"};
        return memoria;
    }

    private Livro[] gerarMemoriaDados() throws FileNotFoundException, IOException{
        Livro[] memoria = new Livro[100];
        Random gerador = new Random();
        File arquivo = new File("/home/gustavo/arquivo.txt");
        FileReader fr = new FileReader(arquivo);
        BufferedReader br = new BufferedReader(fr);
        
        for(int i = 0 ; i < 100 ; i++ ){
            memoria[i].nota = gerador.nextInt(10);
            memoria[i].nLeituras = gerador.nextInt(100);
            String linha = br.readLine();
            memoria[i].Nome = linha;   
        }
        br.close();  
        fr.close();
        
        return memoria;
    }
    
}
[code]

ERRO:
Exception in thread "main" java.lang.NullPointerException
at tp01.organização.TP01Organização.gerarMemoriaDados(TP01Organização.java:110)
at tp01.organização.TP01Organização.(TP01Organização.java:41)
at tp01.organização.TP01Organização.main(TP01Organização.java:19)
Java Result: 1

Me ajudem por favor!!!!

1 Resposta

Matheus_terra

Coloca esse código dentro da tag de código para visualizarmos melhor cara :slight_smile:

Criado 11 de outubro de 2013
Ultima resposta 11 de out. de 2013
Respostas 1
Participantes 2