Ordenar nomes

queria imprimir os nomes de um arquivo em ordem decrescente utilizando um treeset um iterator e o método compareto, porém não estou conseguindo utilizar o metodo compareto para fazer a comparação e nem o método getLinha para retornar cada linha lida do arquivo.

o código está logo em seguida:

import java.io.;
import java.util.
;

public class Ordena {

private String line;

public Ordena(String nomeArq) {
	this.line = nomeArq;
}

public String getLinha() throws IOException {
	return line;
}

public boolean maisLinhas() {
	if (line == null) {
		return false;
	} else {
		System.out.println("funciona");
		return true;
	}
}

class Comparador implements Comparator {
	public int compare(Object s1, Object s2) {
		String l1 = (String) s1;
		String l2 = (String) s2;
		return l1.compareTo(l2);
		
	}

}

public static void main(String[] args) throws IOException {

	BufferedReader bf = new BufferedReader(new FileReader("c:/nomes.txt"));
	Set<String> st = new TreeSet<String>();
	
	while (bf.ready()) {
		String s = bf.readLine();
		
		st.add(s);
	}
	
		

	Iterator<String> it = st.iterator();
	while (it.hasNext()) {
		System.out.println(it.next());
	}
	bf.close();

}

}

cara nao eh querendo ser chato, edita ai o post…ai… dar uma olhada nesse link
http://www.guj.com.br/posts/list/50115.java

Bom dia Bezoto, como o camilolopes disse da uma lida neste link é essencial, com relação a sua duvida faça o seguinte:

Você deve instaciar sua classe que implementa o comparator e colocar no construtor do TreeSet e ja era…

Comparator c = new Comparador();
Set<String> st = new TreeSet<String>(c);

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Comparator;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

public class Comparador implements Comparator<String> {

	public static void main(String[] args) throws IOException {
		Comparator c = new Comparador();
		BufferedReader bf = new BufferedReader(new FileReader("c:/nomes.txt"));
		Set<String> st = new TreeSet<String>(c);

		while (bf.ready()) {
			String s = bf.readLine();

			st.add(s);
		}

		Iterator<String> it = st.iterator();
		while (it.hasNext()) {
			System.out.println(it.next());
		}
		bf.close();

	}

	public int compare(String str1, String str2) {
		return str2.compareTo(str1);
	}

}

[]'s

Um pouco mais sobre ordenação:
http://www.guj.com.br/posts/list/52376.java

VAlew Mantu