Scanner(File) problemas com acentuacao

Meu programa le um arquivo txt, e grava em uma lista todas as palavras separadas, e grava a frequencia com que elas ocorrem. O problema é que quando o arquivo tem alguma palavra com acentuação, qualquer que seja, o programa não le nada do texto, não importa se seja apenas uma palavra no final do texto, ou varias palavras em varias partes do texto, ele não le nada.

aqui a parte do meu codigo que le o arquivo

  input = new Scanner(file);  
  while(input.hasNext()){  
    palavra = input.next();  
    list.insert(palavra);  
  }  

O estranho, é que em textos sem acentuação o programa funciona perfeitamente.

Oi Maurício,

Acredito que seu problema esteja relacionado a forma que você está usando o Scanner.
Quando vc pergunta “has next?” e pega o “next”, vc está pegando um token do Scanner baseado no delimitador padrão do Scanner, que por sua vez, deve estar atrapalhando o recorte.

Tente pegar linha a linha, e então recortar cada linha nos espaços.
Algo assim:

[code]input = new Scanner(file);

// tem mais linhas?
while(input.hasNextLine()){

// sim, tem mais linhas...
// pega a linha, recorta nos espaços (\s), gerando um array (segundo argumento do for each)
// e itera por esse array, colocando cada token na String palavra
for ( String palavra : input.nextLine().split( "\s" ) ) {
    list.insert(palavra);
}

} [/code]

Você já tentou passar o charset do arquivo de texto que contém a acentuação como parâmetro para o Scanner?

Scanner input = new Scanner(new FileInputStream("teste.txt"), "latin1");
1 curtida

[quote]
Você já tentou passar o charset do arquivo de texto que contém a acentuação como parâmetro para o Scanner?

view plaincopy to clipboardprint?
Scanner input = new Scanner(new FileInputStream(“teste.txt”), “latin1”); [/quote]
nao tinha tentado nao, mas funcionou
valeu cara, problema resolvido.