olá para todos!
estou desenvolvendo um sistema em java aqui na minha universidade e estou com problemas. o codigo compila sem erros, mas na hora de executar, ocorre uma exceção NullPointerException. alguem poderia me ajudar?
abaixo estão os arquivos do projeto:
===Processa.java===
public class Processa
{
public static void main( String[] args )
{
LeArquivo lea;
MyRecord rec = new MyRecord();
lea = new LeArquivo();
lea.exec(rec);
int x = 1440/rec.getGranularidade();
int y = rec.getNumDias();
int[][] dia = new int[x][y];
int[][] pessoas = new int[rec.getNumPessoas()*y][x];
int i,j,k;
for( i=0; i<x; i++ )
for( j=0; j><y; j++ )
dia[i][j] = 0;
for( i=0; i><y*rec.getNumPessoas(); i++ )
for( j=0; j><x; j++ )
{
pessoas[i][j] = rec.getList().get(i+j);
}
for( k=0; k><rec.getNumPessoas(); k++)
for( i=0; i><x; i++ )
for( j=0; j><y; j++ )
if (pessoas[k][j] == 1)
dia[x][y]++;
int g = rec.getGranularidade();
for( i=0; i><x; i++ )
for( j=0; j><y; j++ )
if (dia[i][j] == rec.getNumDias())
System.out.println("dia "+j+", das: "+(0+i*g)+" as: "+(0+(i*g)+g)+".");
}
}
====
==MyRecord.java==
import java.io.DataOutputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.EOFException;
import java.util.Random;
class MyRecord
{
private int numdias;
private int numpessoas;
private int granularidade;
private int dia;
private int mes;
private Lista list;
MyRecord(int nd, int np, int g, int d, int m)
{
super();
this.numdias = nd;
this.numpessoas = np;
this.granularidade = g;
this.dia = d;
this.mes = m;
}
MyRecord()
{
this(0,0,0,0,0);
}
void write(DataOutputStream out) throws IOException
{
out.writeInt(numdias);
out.writeInt(numpessoas);
out.writeInt(granularidade);
out.writeInt(dia);
out.writeInt(mes);
Random r = new Random();
for( int i=0; i>< (numdias*numpessoas)*(1440/granularidade); i++)
out.writeInt(r.nextInt(2));
}
void read(DataInputStream in) throws IOException
{
this.numdias = in.readInt();
this.numpessoas = in.readInt();
this.granularidade = in.readInt();
this.dia = in.readInt();
this.mes = in.readInt();
while(true)
{
try
{
int aux = in.readInt();;
list.add( aux );
}
catch(NullPointerException e)
{
System.err.println(e.getMessage());
return;
}
}
}
public int getNumDias()
{
return numdias;
}
public int getNumPessoas()
{
return numpessoas;
}
public int getGranularidade()
{
return granularidade;
}
public int getDia()
{
return dia;
}
public int getMes()
{
return mes;
}
public Lista getList()
{
return list;
}
}
====
==LeArquivo.java==
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.EOFException;
class LeArquivo
{
public void exec(MyRecord record)
{
FileInputStream stream;
try
{
stream = new FileInputStream(new File("pessoa.dat"));
}
catch(FileNotFoundException e)
{
System.err.println(e.getMessage());
return;
}
DataInputStream in = new DataInputStream(stream);
try
{
System.out.println("Reading...");
try
{
record.read(in);
}
catch(EOFException eof)
{
in.close();
System.out.println(eof.getMessage());
return;
}
}
catch (IOException e)
{
System.err.println(e.getMessage());
}
}
}
====
==Lista.java==
class Lista
{
private NoLista primeiro;
private int quant;
public Lista()
{
primeiro = new NoLista();
quant = 0;
}
public Lista( int info, NoLista primeiro )
{
this.primeiro = new NoLista( info );
this.primeiro.setProximo( primeiro );
quant = 1;
}
public void add( int info )
{
if( quant == 0 )
{
primeiro.setInfo( info );
quant++;
}
else
{
NoLista ant = new NoLista( primeiro );
NoLista aux = new NoLista( primeiro.getProximo() );
while( aux.getInfo() == -1 )
{
ant = ant.getProximo();
aux = aux.getProximo();
}
aux.setInfo( info );
ant.setProximo( aux );
quant++;
}
}
public int get( int pos )
{
NoLista aux = new NoLista( primeiro );
for( int i=0; i<pos; i++)
{
if (aux.getInfo() != -1)
aux = aux.getProximo();
else
return -1;
}
return aux.getInfo();
}
}
====
==NoLista.java==
class NoLista
{
private int info;
private NoLista proximo;
public NoLista( int info )
{
this.info = info;
this.proximo = new NoLista( );
this.proximo.setInfo ( proximo.getInfo() );
this.proximo.setProximo (proximo.getProximo() );
}
public NoLista()
{
this( -1 );
}
public NoLista( NoLista aux )
{
proximo.setInfo( aux.getInfo() );
proximo.setProximo( aux.getProximo() );
}
public int getInfo()
{
return info;
}
public NoLista getProximo()
{
return proximo;
}
public void setInfo( int i )
{
info = i;
}
public void setProximo( NoLista novo )
{
proximo = novo;
}
}
====
quando executo o comando:
java Processa
após compilar o arquivo, aparece a mensagem:
Reading…
null
Exception in thread “main” java.lang.NullPointerException
at Processa.main(Processa.java:26)
qualquer ajuda é bem vinda.
kléber mota>