Meu programa le apenas a ultima linha do arquivo, eu ja tentei de tudo varios codigos na internet e nada resolve, alguem saberia dizer o queta acontecendo aqui?
mesma coisa, ja nao sei mais o que fazer pra resolver
estou colocando dentro de um JTextArea tem algum problema? será que é por isso que ta acontecendo isso?
E
Endrew1 like
Como também estou mechendo com arquivos em java,
acabei de testar seu código e não encontrei nenhum erro,
consegui ler mais de 2000000 de linhas num arquivo longo.
Apenas comentei a linha // telaAgenda.setText(linha); e
Usei System.out.println ( linha );
Com certeza o erro está relacionado ao TextArea.
Vou testar agora usando um TextArea do JavaFX.
staroski1 like
O setText não concatena texto ele substitui o texto, assim, após passar da última linha o texto será a última linha.
Adicione as linhas em um StringBuilder e só faça o setText quando tiver saído do laço.
dayennss
como isso pode acontecer de o amigo de cima usou meu código e obteve sucesso em seu projeto? enfim vou fazer esse teste tbm, e se resolver volto aqui
staroski1 like
Seu amigo deve ter feito assim:
telaAgenda.setText(telaAgenda.getText()+linha);
E você fez assim:
telaAgenda.setText(linha);
Usa o StringBuilder que será mais performático.
dayennss
agora está lendo gudo porém sem nenhum espaço, apenas escrevendo em uma linha só
dayennss
ah e acabei de nota outro problema, agora está lendo uma linha sim outra não
dayennss
então consegui resolver por hora da seguinte forma:
como estava lendo apenas uma linha sim outra nao, na hora de armazenar eu armazenei com um " \n"
deu certo e ficou bom por enquanto.
escreva.println("Nome: "+this.nome+"\n");escreva.println("Telefone: "+this.numero+"\n");escreva.println("Aniversario: "+this.niver+"\n");escreva.println("-----------------------------"+"\n");escreva.flush();escreva.close();arquivo.close();}catch(IOExceptionex){Logger.getLogger(Contatos.class.getName()).log(Level.SEVERE,null,ex);}return("Cadastro realizado com sucesso");}
Solucao aceita
staroski1 like
Você não está prestando atenção no código que escreveu, veja:
Stringlinha=br.readLine(); // aqui você leu uma linha e não fez nada com elatelaAgenda.setText("");while(br.readLine()!=null){//aquivocêleualinhaseguinteenãofeznadacomelalinhas.append(linha); // aqui você está adicionando a linha lida pela penúltima vez e adicionando num StringBuildertelaAgenda.setText(telaAgenda.getText()+"\n"+linha); // aqui tá setando o texto do textArea, ou seja, não tá usando o StringBuilder pra nadalinha=br.readLine(); // aqui está lendo a linha seguinte}
PERFEITO! muito obrigada mesmo! Ajudou muito com essa duvida!
agora como eu faço caso eu quisesse pesquisar uma palavra dentro desse arquivo?
ou excluir parte dele?
valeu cara, ajudou demais mesmo.
nao sei como agradecer
staroski
Jogue o texto do TextArea para uma variável do tipo String e aí você pode procurar nessa String.
Veja a documentação da classe String.