Duvida com Arquivo( para quem sabe é simples)

32 respostas
M

Galera, gostaria de saber onde consigo um tutorial para leitura de arquivos txt no eclipse, de preferencia com video.
Nao havendo tutorial gostaria de receber dicas, pois estou precisando aprender isso, de preferencia com buffered.

Att,
Paulo Henrique

32 Respostas

B

Ola,

vc deu uma olhada nos artigos que a turma daqui escreve, tem um lá que pode te ajudar:
http://www.guj.com.br/articles/13

Outra,

para quem sabe é simples

Pra quem sabe é sempre simples…

M

Ja li sim amigo… e nao consegui aprender ; /
sou bem iniciante em Java, comecei faculdade de ciencia da computaçao agora
estou querendo aprender isso
para poder criar alguma coisa basica aqui.

att,Paulo Henrique

joaocarlos86
drigo.angelo

Coreto…

Abrir arquivos em java é realmente complicado, pra quem não conhece o Decorator Pattern sempre fica meio complicado (até que você decora e faz tudo de um modo meio automatico)

Apesar de realmente ter muito material, as vezes eu acho que poderia ser mais fácil fazer isso, ainda hoje quando vou ler algum arquivo fico consultando a API pra decidir qual classe(s) utilizar…

M

Joao Carlos, nao precisa ajudar, um dia voce tambem teve que aprender, Pessoal, me de algumas dicas de por onde começar,

Att,Paulo Henrique

B

NUm arquivo chamado “Teste.java”

public static void main(String[] args) throws Exception{ FileReader reader = new FileReader(new File("c:arquivo.txt")); BufferedReader leitor = new BufferedReader(reader); String linha = null; while((linha = leitor.readLine())) { System.out.println("Linha: " + linha); } leitor.close(); reader.close(); }

M

Só isso? intendi…ai dps posso guardar o que esta ali em uma String, ir quebrando ela e jogando no vetor?

att,
Paulo Henrique

B

mirolhim:
Só isso? intendi…ai dps posso guardar o que esta ali em uma String, ir quebrando ela e jogando no vetor?

att,
Paulo Henrique

Sim amigo, somente apenas isto, é o que está no artigo…

Sim, vc pode ir guardando o que leu em um vetor…

M
import <a href="http://java.io">java.io</a>.<em>;

import java.util.</em>;

public class leArquivo {
private Scanner x;

public void abreArquivo(){
	try{
		x=new Scanner(new File("contatos.txt"));
	}
	catch(Exception e){
		System.out.println("Impossivel abrir arquivo!");
	}
}
public void leArquivo(){
	while(x.hasNext()){
		String a=x.next();
		String b = x.next();
		System.out.printf("%s %s\n",a,b);
	}
}

public void fechaArquivo(){

x.close();

}

}

Galera, ajuda, esta certo essa classe so para ler o arquivo?

drigo.angelo

Acho que dessa forma funciona também, mas creio que o BufferedReader seja mais utilizado…

O código que o BrunoCarlo postou está correto e é mais comum.

[]'s

M

Vou tentar e ja volto…

M

O codigo do Bruno ta dando erro na linha 5, nao e possivel converter String para booleano.

drigo.angelo

Coloca

while( (linha = leitor.readLine()) != null)

E já ia me esquecendo, quando for postar seu código, utilize a formatação, tem um tópico fixo em Fórum>Java Básico que expilca como fazer isso, caso você tenha dificuldade ^^

M

beleza voce é o cara…
agora so falta eu fazer ele achar o arquivo que quero, posso coloca-lo la no pacote e por (arquivo.txt)
apenas?

drigo.angelo

Não sei, acho que tem jeito, mas eu costumo usar caminho absoluto, como no caso do código do Bruno…

testa aí e manda o resultado :stuck_out_tongue:

M

Carabmba…voces sao muito bons…
Obrigado cara… um dia quem sabe chego proximo ao que voces sabem…

obs: volto para tirar mais duvidas

Att, Paulo Henrique

B
mirolhim:
beleza voce é o cara.... agora so falta eu fazer ele achar o arquivo que quero, posso coloca-lo la no pacote e por (arquivo.txt) apenas?
Ola, agora uma diga para vc não ter que colocar o caminho do arquivo direto no codigo, esta dica vai abrir uma janela para vc seleciona o arquivo.
...
		JFileChooser chooser = new JFileChooser();
		chooser.showOpenDialog(null);
		File file = chooser.getSelectedFile();
		if (file != null) {
			System.out.println("Leia o arquivo aqui..." + file);
		}
...
M

Tem que importar alguma coisa para usar o JFileChooser?

B
import javax.swing.JFileChooser;

O Eclipse não achou não?!

M

Achou não ; /
Caramba…essa sacada ai foi show de bola…
mas ai posso tirar aquele outro caminho?
ai ficaria como meu codigo? porque tem que ser mantido o filereader certo?

B

mirolhim:
Achou não ; /
Caramba…essa sacada ai foi show de bola…
mas ai posso tirar aquele outro caminho?
ai ficaria como meu codigo? porque tem que ser mantido o filereader certo?

Então,

Este codigo novo só te auxilia na forma de como vc vai criar o arquivo que vc vai ler… veja a linha:

FileReader reader = new FileReader(new File("c:arquivo.txt"));

Vc cria o arquivo “new File(“c:arquivo.txt”)”, da forma que eu passei, vc não precisa mais fazer isto… vc vai usar o arquivo que vc recupera do JFileChooser.

drigo.angelo

Você só tem que mudar esta linha:

FileReader reader = new  FileReader(new File("c:arquivo.txt"));

Como você já vai ter um objeto do File, é só colocar

FileReader reader = new  FileReader(file);

Update: BrunoCarlo na frente por 2 segundos!

M
Certoisso ja tinha feito

ficou assim:

FileReader reader = new FileReader(file);

BufferedReader leitor = new BufferedReader(reader);

ele ta lendo certinho exibindo certinho, porém apos exibir ta dando erros

Exception while removing reference: java.lang.InterruptedException

java.lang.InterruptedException

at java.lang.Object.wait(Native Method)

at java.lang.ref.ReferenceQueue.remove(Unknown Source)

at java.lang.ref.ReferenceQueue.remove(Unknown Source)

at sun.java2d.Disposer.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)
B
<blockquote><div class="quote-author">mirolhim:</div>Exception while removing reference: java.lang.InterruptedException

java.lang.InterruptedException

at java.lang.Object.wait(Native Method)

at java.lang.ref.ReferenceQueue.remove(Unknown Source)

at java.lang.ref.ReferenceQueue.remove(Unknown Source)

at sun.java2d.Disposer.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

</blockquote>

Estranho, posta teu codigo ai para podermos dar uma olhada;

Ps: não esqueça de coloca-lo entre as tag’s [ code ] [ /code ] , pq senão fica ruim de olhar…

M
import java.io.*;
import javax.swing.JFileChooser; 
public class main {

	public static void main(String[] args)throws Exception {
		JFileChooser chooser = new JFileChooser();   
		chooser.showOpenDialog(null);   
		File file = chooser.getSelectedFile();   
		if (file != null) {  
			FileReader reader = new FileReader(file);     
			BufferedReader leitor = new BufferedReader(reader);     
			String linha = null;     
			while((linha = leitor.readLine())!= null) {     

				System.out.println(linha);     
			}     
			leitor.close();     
			reader.close();     
		} 
	}
}
[/code]

Ta ai rapazeada

B

Ola,

Nas linhas 17 e 18, comente a linha 17 a faça um teste.

Pode ser que vc esteja fechando o mesmo canal duas vezes.

drigo.angelo

Tira o throws exception do método main… coloca blocos try / catch em vez disso, senão qualquer excessão vai parar sua app :smiley:

M

Nada ; /
ele exibi as informaçoes certinhas dps da aqueles erros ; /

B

Ps.: aqui o seu codigo não deu erro.

drigo.angelo

Acho que fechar um canal mais de uma vez não era pra causar erros.

M

Galera…Agora me perdi um pouco…me mande o seu código como ficou e não deu erro!

M

Camaradas…preciso ir agora…so vou entrar aqui amanha 8 horas da manha, um grande abraço, voces sabem muito e espero que possam continuar me ajudand amanha vou entrar aqui no mesmo topico, ainda nao sei o porque do erro, se souberem me aviesem por favor…

Grato, Paulo Henrique

Criado 8 de fevereiro de 2011
Ultima resposta 8 de fev. de 2011
Respostas 32
Participantes 4