Ajuda com getter and setter de um array

1 resposta
A

Boa noite, estou com dificuldade em resolver um problema, estou tentando adicionar as informações de um arquivo txt linha por linha em um arraylist, estou usando um metodo set para adicionar e um get para recuperar as linhas do array, mas não tenho exito.

public class Documentos {

private static List<String> linhaRA = new ArrayList();
private String profissao;

public Documentos(String linhaRa){
	this.linhaRA.add(linhaRa);
}

public Documentos(){
	
}

public static String getLinhaRA(int posicao) {
	return linhaRA.get(posicao);
	
}

public static int getLinhaRALength(){
	return linhaRA.size();
}

public void setLinhaRA(String linhaRA){
	this.linhaRA.add(linhaRA);
	
}

public void chooser() {
	Documentos documento = new Documentos();
    JFileChooser chooser = new JFileChooser();
    chooser.showOpenDialog(null);
    try
    {
      FileReader arq = new FileReader(chooser.getSelectedFile());
      BufferedReader lerArq = new BufferedReader(arq);
      List<String> texto1 = new ArrayList<>();
      String texto2;
      while ((texto2 = lerArq.readLine()) != null)     {
    	  int count = 0;
    	  
    	  documento.setLinhaRA(texto2);
    	  System.out.println(documento.getLinhaRA(count));
    	  count++;
    	  
      }

      arq.close();
      lerArq.close();
      
    }
    catch (IOException localIOException) {}


}

}

1 Resposta

D

Olá

Vc está misturando coisas

// public void chooser() { Alterado para static e tipo de retorno
public static Documentos chooser() {
    Documentos documento = new Documentos();
    JFileChooser chooser = new JFileChooser();
    chooser.showOpenDialog(null);
    try
    {
      FileReader arq = new FileReader(chooser.getSelectedFile());
      BufferedReader lerArq = new BufferedReader(arq);
      // List<String> texto1 = new ArrayList<>(); desnecessario
      String texto2;
      int count = 0; // movido
      while ((texto2 = lerArq.readLine()) != null)     {
          // int count = 0; movido para fora do loop
          
          documento.setLinhaRA(texto2);
          System.out.println(documento.getLinhaRA(count));
          count++;
          
      }

      // arq.close();
      // lerArq.close(); inverter order, os últimos serão os primeiros,
      // de essa preferencia ao fechar os readers
      
      lerArq.close();
      arq.close();
      return documento; // adicionado retorno
    }
    catch (IOException localIOException) {
        return null;  //adicionado return null quando falha
    }


}

// private static List<String> linhaRA = new ArrayList(); remova o static
private List<String> linhaRA = new ArrayList();

// public static int getLinhaRALength(){ remova static
public int getLinhaRALength(){
    return linhaRA.size();
}

Para usar (testar)

Documentos doc = Documentos.chooser();
if (doc != null) {
    for (int i = 0; i < doc.getLinhaRALength(); i++) {
        System.out.println(doc .getLinhaRA(i));
    }
} else {
    System.out.println("Doc null, erro ao ler arquivo");
}
Criado 10 de abril de 2016
Ultima resposta 10 de abr. de 2016
Respostas 1
Participantes 2