Lendo arquivo txt - order by de valores

5 respostas
rockstorm

Bom dia.
Estou lendo um arquivo texto e recuperando o codigo de cada usuario no arquivo e executando uma açao. O problema esta em que o usuario pode se repetir no arquivo txt fazendo com que a ação acorra mais vezes sem necessidade.
Não estou conseguindo achar uma solução para isso, já que estou lendo um arquivo txt. Eu teria que comparar com o que já foi lido?? mas o que já foi lido eu não tenho guardado!!

grato

5 Respostas

W

Porque vc nao cria um Hashtable e quando vc estiver lendo o arquivo texto de usuarios vc verifica se existe o codigo no Hashtable, se nao existir vc adiciona e executa essa acao.

O Hashtable tem um metodo que eh facinho de testar isso, Hashtable.contains(Object value);

rockstorm

ok. mas como eu faria a leitura deste Hash já que não sei o seu tamanho??

Em um for ou While?? vc poderia me dar um exemplo de leitura??
grato

rockstorm

consegui resolver amigo, muito obrigado a dica!!

W
import java.io.*;
import java.util.*;

public class ReadFile {

	public static void main(String[] args) { 
		
		Hashtable<String, String> users = new Hashtable<String,String>(); 
		
		try { 
			BufferedReader br = new BufferedReader(new FileReader("users.txt"));
			
			String line = null ; 
			
			while ( (line = br.readLine()) != null) {
				
				String[] _temp = line.split("\s+");
				
				if (!users.contains(_temp[0])) { 
					users.put(_temp[0], _temp[1]);
					// aqui executa a acao.
				}				
			}
			
			// imprime so os usuarios que foram adicionados
			
			for (Enumeration e = users.keys(); e.hasMoreElements();) { 
				
				String key = (String)e.nextElement();
				
				System.out.println("Codigo : " + key + 
						" / " + users.get(key));
				
			}						
			
		} catch (IOException e) { 
			e.printStackTrace();
		}
		
	}
	
}
W

Ops, acabei de postar um exemplo.

Legal que funcionou. :slight_smile:

Criado 13 de maio de 2008
Ultima resposta 13 de mai. de 2008
Respostas 5
Participantes 2