Não consigo ler arquivo usando o JFileChooser

Olá a todos. Não estou conseguindo ler arquivos .txt usando o JFileChooser. O que me é exibido é apenas o número de linhas que meu arquivo tem. Alguém pode me ajudar?

[code]try {
JFileChooser fc = new JFileChooser();
fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
int resultado = fc.showOpenDialog(this);

if(resultado == JFileChooser.CANCEL_OPTION)
System.exit(1);
File fileName = fc.getSelectedFile();
FileReader input = new FileReader(fileName);
BufferedReader bufRead = new BufferedReader(input);

String linha;
int conta = 0;

linha = bufRead.readLine();
conta++;

while (linha != null){
campo.setText(conta+": "+linha);
linha = bufRead.readLine();
conta++;
}

bufRead.close();

}catch (ArrayIndexOutOfBoundsException e){
}catch (IOException e){
e.printStackTrace();
}
[/code]

Descobri algo estranho. Quando digito a linha:

System.out.println(linha)

O conteúdo do arquivo é exibido corretamente.

Mas quando digito:

campo.setText(linha)

Sendo que “campo” é o meu textArea, nada é exibido, apenas o número da última linha do arquivo, e mais nada.

Alguém tem alguma luz?

Boa tarde Fabricio

O que esta acontecendo é que você esta setando o valor do texto do JTextArea cada vez que você passa por uma linha do while, ai
ele imprime apenas o conteudo da ultima linha que no caso esta em banco, o que você pode fazer é utilizar um StringBuffer para armazenar
o valor das linhas e setar o valor do textarea depois do while. Exemplo:

StringBuffer s = new StringBuffer();
while (linha != null) {
s.append(conta + ": " + linha + “\n”); // Não esquecer do \n para fazer a quebra de linha
linha = bufRead.readLine();
conta++;
}
campo.setText(s.toString());

Opa… consegui resolver o problema. O que fiz foi modificar apenas uma linha de meu código.

[code]try {
JFileChooser fc = new JFileChooser();
fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
int resultado = fc.showOpenDialog(this);

if(resultado == JFileChooser.CANCEL_OPTION)
System.exit(1);
File fileName = fc.getSelectedFile();
FileReader input = new FileReader(fileName);
BufferedReader bufRead = new BufferedReader(input);

String linha = null;

linha = (String)bufRead.readLine();

campo.setText("");
while (linha != null){
campo.append("\n" + linha);
linha = bufRead.readLine();
}

bufRead.close();

}catch (ArrayIndexOutOfBoundsException e){
}catch (IOException e){
e.printStackTrace();
}[/code]

Isso está funcionando perfeitamente. Consigo ler arquivos .txt de forma correta.

Agora, quando salvo um arquivo com o seguinte código:

try{ BufferedWriter bw = new BufferedWriter(new FileWriter(tfNomeArquivo.getText()));//Cria um novo arquivo com o nome que for digitado com textField "tfNomeArquivo"... bw.write("\n" + campo.getText());//... e salva n este arquivo o conteudo que for digitado no textArea "campo" JOptionPane.showMessageDialog(null, "Arquivo salvo com sucesso.", "AVISO", JOptionPane.INFORMATION_MESSAGE); bw.close(); } catch(IOException e){}

O arquivo é salvo com seu nome corretamente, mas quando mando abrir esse arquivo, ele aparece em meu textArea em apenas uma linha.

Isso só ocorre com os arquivos que criei pela minha aplicação. Se eu criar um .txt por fora, ele é exibido corretamente.

Alguém pode me dar uma sugestão?

Grato pela atenção

Amigo a sintax ira ficar assim esse codigo é para ler arquivo txt, e gravar somente com extensão htm ou html se vc tentar salvar com qualquer outra extensão aparece a janela de erro com o erro de extensão correto !!!

Em baixo do seu arquivo de texto crie um ActionListener assim …

Vc só ira mexer no codigo nessa linha => fos.write(TextArea3.getText().getBytes()); aqui vc ira informar o nome do seu TextArea
Que vc quer q leia EX: o meu era TextArea3 Ok testa ae qualquer coisa tamo ae joseclaudio@bhtecnology.com :!:

btGravar = new JButton();
this.getContentPane().add(btGravar);
btGravar.setText(“Gravar Pagina”);
btGravar.setBounds(311, 348, 155, 30);
btGravar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
file.setAcceptAllFileFilterUsed(false);
file.setFileFilter(new FileFilter(){
public boolean accept(File f){
return (f.getName().indexOf(".htm")>-1)|| f.isDirectory ();
}
public String getDescription(){
return “Pagina da Web HTML”;
}
});
int returnFile = file.showSaveDialog(file);

					if(returnFile == JFileChooser.APPROVE_OPTION){
						if(file.getSelectedFile().getName().indexOf(".htm")>=0){
							File output = null;
							output = file.getSelectedFile();
							
							try{
								FileOutputStream fos = new FileOutputStream(output);
								fos.write(TextArea3.getText().getBytes());
								JOptionPane.showMessageDialog(null, "O arquivo foi salvo com exito!");
							}catch(Exception exp){
								JOptionPane.showMessageDialog(null, "Não foi possivel salvar o arquivo!");
							}
						}
						else{
							JOptionPane.showMessageDialog(null, "Nome ou arquivo inválido!\nOarquivo deve ter a extensão .htm");
						}
					}
				}
			});
		}
		pack();
		this.setSize(483, 412);
	} catch (Exception e) {
		e.printStackTrace();
	}
}

}