Retornando um ArrayList..nullpointer?!

2 respostas
D

ola pessoal ..estou com um probleminha.....estou utilizando uma classe que invoca um metodo de outra classe...este metodo deveria retornar um arraylist..para o meu controle...mas ..esta dando erro....

esta dando nullpointer....gostaria de sabe porque....

public class ReadObject(){
  
    public ReadObject (){}

public ArrayList readingObjects(){ 
  try{
         BufferedReader bf = new BufferedReader(new FileReader(arq));
         java.util.List objects= new ArrayList();
         int i = 0;

         String linha = bf.readLine();

         while(linha!=null){     
          objects[i++]=new String(linha.readLine());   ****Erro aqui!!!****
         }
         return(objects);
       }catch(Exception e){
        return(null);
       }
  }

}
Observação.se eu trocar a linha             
   objects[i++]=new String(linha.readLine());  

    por  out.println(new String(linha.readLine()));ele mostra normalmente os valores lidos das linhas do arquivo.....mas se o objeto "objects" for um ArrayList...ele da nullpointer...porque???

e do outro lado quando ele deveria retornar o arrayList, eu teria:

ReadObjetc ro = new ReadObject();
  ArrayList objects = ro.readingObjects(new File("/arquivo.txt"));

eu gostaria de saber porque isso esta dando nullpointer ??o que eu estou fazendo de errado ?

desculpe se meu codigo possuir algum um erro..mais grotesco.e que eu to escrevndo no braço..agora porque nao estoou com o codigo aqui
comigo... :lol:

Obrigado!

2 Respostas

ricardolecheta

Voce esta criando um ArrayList e esta manipulando como se fosse um array (objects[i++]=...) isto esta errado, use o metodo add(Object) do framework de collections.

String linha = bf.readLine();
depois vc faz linha.readLine()? nao seria bf.readLine() ? :D

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ReadObject {

	public ReadObject() {
	}

	public List readingObjects(File arq) {
		try {
			BufferedReader bf = new BufferedReader(new FileReader(arq));
			List objects = new ArrayList();
			int i = 0;

			String linha = null;

			while ((linha = bf.readLine()) != null) {
				objects.add(linha);
			}
			return objects;
		}
		catch (Exception e) {
			System.out.println("exists -> " + arq.exists());
			System.out.println("Nao encontrou o arquivo: " + e.getMessage());
			return null;
		}
	}

	public static void main(String[] args) {
		ReadObject ro = new ReadObject();
		List objects = ro.readingObjects(new File("c:/temp/config.properties"));
		if (objects != null) {
			Iterator i = objects.iterator();
			while (i.hasNext()) {
				System.out.println(i.next());
			}
		}
	}
}
D

e sim ricardo…é "bf.readLine() ",escrevi errado…

quanto ao objectarray.add()…comi bola mesmo…

vou tentar …
obrigado pelo exemplo…vai me ajudar muito…

Criado 29 de julho de 2003
Ultima resposta 29 de jul. de 2003
Respostas 2
Participantes 2