Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Weel Fernandes

Laço infinito usando entrada.hasNextLine()

Recommended Posts

Fala galera,

 

Estou pegando um txt com vários salários( 1 por linha) e criei um while para ver quantos salários há no txt, só que virou um laço infinito, não sei por quê. o txt tem apenas 100 salários.

Alguém sabe me dizer o por quê?

 

Valeu gente.

 

Segue o código

 

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
 
public class ArquivoTXT {
 
    public static void main(String[] args) throws IOException {
        lerArquivo();
    }
 
    public static void lerArquivo() throws IOException {
 
        File fileEntrada = new File("Salarios.txt");
        Scanner entrada = new Scanner(fileEntrada);
        FileWriter file = new FileWriter("NovosSalarios.txt", false);
 
        int cont = 0;
 

        while (entrada.hasNextLine()) {
            System.out.println(cont);
            cont++;
        }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi @Weel Fernandes, toma um pouco mais de cuidado quando postar um novo tópico.

 

Acabei de apagar 22 duplicatas.

Compartilhar este post


Link para o post
Compartilhar em outros sites
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        try {
            Scanner input = new Scanner(new File("Salarios.txt"));
                    
            int count = 0;
            while(input.hasNext())
                if(!input.next().isEmpty())
                    count++;
            
            System.out.println("Total:" +  count);
            
        } catch(FileNotFoundException e){
            System.out.println(e.getMessage());
        }
    }     
}

O método "hasNext" não avança se não tiver nada para ser lido no scanner.

while(input.hasNext())
   input.next(); // avança

Não uso a classe scanner para ler arquivos de texto, mas creio que seja isto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.