Ok. Para facilitar o trabalho eu exportei para txt o arquivo xls. Aí comecei a dar conta de resolver o que eu quero. É mais ou menos assim. Tenho um arquivo txt com vaaaaaaaaarios nomes em ordem, separados com (";") no final de cada nome. No while dou um split(";") para pegar cada nome desse arquivo e jogar num List, mas não estou conseguindo, o código só coloca o primeiro nome e não coloca o resto.
public static void main(String []argv) {
try {
BufferedReader reader = new BufferedReader(new FileReader(new File("/Gabriel/Projetos/sorteio/NOME.txt")));
String [] dados;
String linha = null;
int cont = 0;
while(reader.ready()){
linha = reader.readLine();
dados = linha.split(";");
List<String> lista = new ArrayList<String>();
lista.add(dados[cont]);
}
reader.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (NullPointerException e) {
System.out.println("###### Fim do Arquivo ######");
}
}
public static void Gravar(String texto){
String conteudo = texto;
try{
// o true significa q o arquivo será constante
BufferedWriter bw = new BufferedWriter(new FileWriter("arquivoNomes.txt",true));
bw.write(conteudo);
bw.newLine();
bw.flush();
bw.close();
}
// em caso de erro apresenta mensagem abaixo
catch(IOException e){
System.out.println("Erro");
}
}
}
[/code]
o arquivo NOME.txt é mais ou menos assim:
ADELMAN DE BARROS VILLA JÚNIOR;
ADEMAR PASSOS VEIGA;
ADEMAR YOSHIAKI HUZIROKA;
ADRIANA DE LIMA BANDEIRA;
ADRIANA DE LUCA CARVALHO;
ADRIANA DE SABOYA GOLDBERG;
ADRIANA KEHDI;
ADRIANA MINIATI CHAVES;
ADRIANA NOGUEIRA TIGRE COUTINHO;
ADRIANA QUEIROZ DE CARVALHO;
ADRIANA ZANDONADE;
ADRIANE DOS SANTOS;
ADRIANO FALCÃO NERI;
ADRIANO MARES TAROUCO;
ADRIANO MARTINS PORTELINHA;
ADRIENNE GIANNETTI NELSON DE SENNA JOBIM;
ADSON AZEVEDO MATOS;
AFFONSO NEVES BAPTISTA NETO;
AFONSO AUGUSTO RIBEIRO COSTA;
OBS: Se eu conseguir carregar essa lista com os nomes vindo do arquivo ordenado, vou dar um Collections.suffle() para em baralhar esses nomes em ordem aleatória e grava de volta num arquivo txt.
Se alguém puder apontar esse meu erro, fico grato.
Obrigado pessoal do guj pelo help. Finalizei o algoritimo que eu pretendi fazer.
É o seguinte: recebo um arquivo txt com varios nomes em ordem com separado com (";"). Faço a leitura de cada linha e armazeno numa lista. Com a lista carregada, embaralho a lista com o Collections.suffle() e mando gravar essa lista em outro arquivo txt.
Eis o código:
public static void main(String []argv) {
try {
//Le o arquivo
BufferedReader reader = new BufferedReader(new FileReader(new File("/Gabriel/Projetos/sorteio/NOME.txt")));
String [] dados;
String linha = null;
int cont = 0;
int i = 1;
List<String> lista = new ArrayList<String>();
//Percorre a o arquivo
while((linha = reader.readLine()) != null){
//Armazena cada linha do arquivo no array.
dados = linha.split(";");
lista.add(dados[cont]);
}
reader.close();
//Embaralha a lista
Collections.shuffle(lista);
for(int x = 0; x < lista.size(); x++){
//A cada 80 nomes, imprimir linha
if (x % 80 == 0 && x != 0){
gravar("==================================================================================================");
}
gravar(i++ + " - " + lista.get(x));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
System.out.println("Arquivo não encontrado!");
} catch (IOException e) {
e.printStackTrace();
} catch (NullPointerException e) {
System.out.println();
System.out.println("Fim do Arquivo");
}
}
public static void gravar(String texto){
String conteudo = texto;
try{
// o true significa q o arquivo será constante
BufferedWriter bw = new BufferedWriter(new FileWriter("arquivoNomes.txt",true));
bw.write(conteudo);
bw.newLine();
bw.flush();
bw.close();
}
// em caso de erro apresenta mensagem abaixo
catch(IOException e){
System.out.println("Erro na gravação do arquivo");
}
}