Salvar jlist em txt

[quote=urbgames]Para resolver seu problema com o null altera teu while, para ele ficar desta forma:

[code]while (objetoBufferedReader.ready()) {

//exemplo…
texto = oi2.readLine();
System.out.println(texto);
}[/code][/quote]
Já tentei algo parecido; já alterei a sequencia das linhas do código; por fim está assim:
FileReader arqLe=new FileReader(this.nomeArquivo);
BufferedReader br=new BufferedReader(arqLe);
while((conteudo=br.readLine())!=null){
texto = br.readLine();

Está salvando sem o null, mas ainda não consigo ler (não aparece na jlist)!!!

.

mbastos73 me envia teus arquivo, que ai comento o erro e vc conserta.

Via MP?

??

Manda aqui mesmo pelo fórum, Attachments.

Segue as classes zipadas.

Segue um .txt como para veres como está salvando.

Todo o projeto:

Só 1 instante.

Mais alguma dica para resolver o “caso”? Mudei o codigo do método ler novamte. Segue abaixo:

public String ler(){
String texto = “”;
String conteudo="";
try{
FileReader arqLe=new FileReader(this.nomeArquivo);
BufferedReader br=new BufferedReader(arqLe);
while((conteudo=br.readLine())!=null){
texto =texto+conteudo+"\r\n";
}
br.close();
arqLe.close();

        }catch(Exception e){
            e.getMessage();
        }
    return texto;
    }

Apesar de concatenar as strings, é o único jeito que aparece algo na jlist!!!

mbastos73 dei uma alterada no código na parte de ler e gravar e está funcionando bacana.

[code]package arquivioComboList;

import java.io.*;
import java.util.ArrayList;

import javax.swing.ListModel;

public class Arquivo {

private String nomeArquivo;

private FileReader reader;
private FileWriter write;
private BufferedReader bufferReader;
private BufferedWriter bufferWrite;
private File arquivo;

public Arquivo (String nomeArquivo){
    this.nomeArquivo=nomeArquivo;

    //passando nome do arquivo
    arquivo = new File(nomeArquivo);
}

public String gravar(String texto){
   
	
	try{

		//Criar arquivo se não existir
		arquivo.createNewFile();
		
		write = new FileWriter(arquivo);
		bufferWrite = new BufferedWriter(write);
		
		//adicionando texto ao arquivo
		bufferWrite.write(texto);
		bufferWrite.newLine();
		bufferWrite.close();
		
		/*
        FileWriter arqGrava=new FileWriter(this.nomeArquivo,false);
       PrintWriter arqDados=new PrintWriter(arqGrava);
        //BufferedWriter arqDados=new BufferedWriter(arqGrava);
       // arqDados.write(texto);
      //  arqDados.newLine();
        arqDados.println(texto);
        arqDados.close();
        arqGrava.close();*/
		
        return null;
    }
    catch(Exception e){
        return e.getMessage();
        
    }
}

public String ler(){
    String texto = "";
    String conteudo="";
    
    
    try{
    	
        reader = new FileReader(arquivo);
        bufferReader = new BufferedReader(reader);
        
        while (bufferReader.ready()) {
                            //Ler linha por linha
			System.out.println(bufferReader.readLine());
		}
        
        /*
    	FileReader arqLe=new FileReader(this.nomeArquivo);
        BufferedReader br=new BufferedReader(arqLe);
        while((conteudo=br.readLine())!=null){
            texto = br.readLine();
    }
    br.close();
    arqLe.close();
        */
        
        }catch(Exception e){
            e.getMessage();
        }
    return null;
    }

/**
 *
 * @return
 */
public boolean exists() {
    throw new UnsupportedOperationException("Not yet implemented");
}

boolean isFile() {
    throw new UnsupportedOperationException("Not yet implemented");
}
}

[/code]

mbastos73 agora falta vc modelar a solução.

1 - No momento de gravar vc tem que ler o dados já contidos no arquivo, juntar com a nova entrada e gravar novamente.
2 - No momento de ler vc pode implementar um arraylist para carregar todas as saídas do arquivos e carregar o Jlist.
3 - Para excluir vc deve pesquisar no arquivo e excluir a linha correspondente.

Dá uma olhada e fala ai!

Esse Arraylist tenho que dar uma pesquisada, não me lembro. Tentei criar um Array de String (String[] texto), mas não deu.

Tentei um for no combobox para ler cada um dos indices do Array, mas não sei como passar o índice do array do metodo ler (classe Arquivo) para o Action do combo.

mbastos73 o Arraylist seria para vc pegar todas as linhas do arquivo e alimentar o Jlist.
O for vc tem que utilizar para passar a seguinte instrução:

Mas é claro vc tem que dar uma alterada nesta implementação.

Fiz um arraylist (ArrayListtexto). Adicionar os elementos em lismodel está igual ao da sua última mensagem; mas para fazer o for, tenho de ter um indice de tamanho, ou usar um while, mas e como interromper?

Não consegui. Não consigo fazer aparecer cada cidade em uma linha, mesmo com o arraylist. Tentei um for, pegando o size da arraylist, mas não deu certo. Vou tentando.
Mas mesmo assim, muito obrigado por sua dedicação. Como disse, vou tentando. Se tiver mais alguma idéia, estou no aguardo.
VALEU MESMO!

.

mbastos73 dá uma olhada neste código:

Ler e gravar arquivos:

[code]public String gravar(String texto){

	try{

		//Criar arquivo se não existir
		arquivo.createNewFile();
		
		write = new FileWriter(arquivo);
		bufferWrite = new BufferedWriter(write);
		
		//adicionando texto ao arquivo
		bufferWrite.write(texto);
		bufferWrite.newLine();
		bufferWrite.close();
		
		/*
        FileWriter arqGrava=new FileWriter(this.nomeArquivo,false);
       PrintWriter arqDados=new PrintWriter(arqGrava);
        //BufferedWriter arqDados=new BufferedWriter(arqGrava);
       // arqDados.write(texto);
      //  arqDados.newLine();
        arqDados.println(texto);
        arqDados.close();
        arqGrava.close();*/
		
        return null;
    }
    catch(Exception e){
        return e.getMessage();
        
    }
}

public ArrayList<String> ler(){
    String texto = "";
    String conteudo="";
    
    
    try{
    	
        reader = new FileReader(arquivo);
        bufferReader = new BufferedReader(reader);
        
        while (bufferReader.ready()) {
			array.add(bufferReader.readLine());
			
			
		}
        bufferReader.close();
		
        
        /*
    	FileReader arqLe=new FileReader(this.nomeArquivo);
        BufferedReader br=new BufferedReader(arqLe);
        while((conteudo=br.readLine())!=null){
            texto = br.readLine();
    }
    br.close();
    arqLe.close();
        */
        
        }catch(Exception e){
            e.getMessage();
        }
    
    return array;

    }[/code]

Carregar Jlist:

[code]private void jCBxEstadosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCBxEstadosActionPerformed
jList1.setModel(lstModel);
lstModel.clear();
a=new Arquivo((String)jCBxEstados.getSelectedItem()+".txt");

        textos = a.ler();
        for (int i = 0; i < textos.size(); i++) {
            lstModel.addElement(textos.get(i));
		}
        
        jList1.setModel(lstModel);
}//GEN-LAST:event_jCBxEstadosActionPerformed[/code]

Os métodos gravar, ler e listar estão funcionando bacana.

Ficando assim necessário fazer alguns implementações, pois o add deve aceitar várias entradas e ao gravar vc deve manter o que já existe no arquivo. E o excluir está bagunçando o arquivo, desta forma dá uma arrumada nele, o método para listar pode te ajudar.

Com sua imaginação e os códigos acima é possível vc desenrolar isso ai.

Qualquer coisa dá um grito!

Urbgames, perfeito!!! Fiz algumas alterações, para deixar mais do jeito que havia escrito desde o início. Mas eu cheguei a fazer uma arraylist, mas devo ter feito alguma bobagem, no add os elementos talvez (eu apaguei o código que fiz com o arraylist, mas acho que não tinha implementado uma arraylist no combobox). Lógico que não iria funcionar, mas só vi isto agora.
MAS MUITO OBRIGADO POR TEU EMPENHO (e a caixa alta é para gritar mesmo). Faz mais de uma semana que estou às voltas com isto.
CARA, MAIS UMA VEZ MUITO OBRIGADO, e ao forum GUJ de uma forma geral. Vou ficar de olho no forum, pois vi que a comunidade é muito importante em nosso desenvolvimento. Se puder ajudar com meu modesto conhecimento, ficarei feliz.

PS: como vcs fazem para inserir o código da maneira elegante que apareceram os teus?? (preguiça de ler a respeito das postagens!!!)