1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Recebendo InputMismatchException ao usar a classe Scanner em Java

Olá a todos.Estou tendo problemas ao tentar carregar um arquivo texto para minha classe.Quando rodo o programa obtenho o seguinte aviso:

Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:864)
    at java.util.Scanner.next(Scanner.java:1485)
    at java.util.Scanner.nextDouble(Scanner.java:2413)
    at principal.Principal.carregaDoArquivo(Principal.java:35)
    at principal.Principal.main(Principal.java:18)

Esse é o arquivo texto:

100,Geladeira,180,90,89,1200.00,4,branca
101,Geladeira,180,90,89,1200.00,2,prata
102,Aspirador,30,50,60,149.99,5,vermelho
103,Aspirador,30,50,60,149.99,3,azul

E esse o meu código:

package principal;

import java.io.FileNotFoundException;

import java.io.FileReader;
import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.List;
import java.util.Scanner;

import itens.*;

public class Principal {
    private static List<Produtos> produtos = 
            new ArrayList<>();

    public static void main(String[] args) throws InputMismatchException {
        carregaDoArquivo();

        System.out.println(produtos.size());
    }

    @SuppressWarnings("resource")
    public static void carregaDoArquivo() {
        Scanner scanner;

        try {
            scanner = new Scanner(new FileReader("eletro.txt")).useDelimiter("\\,|\\n");
            while(scanner.hasNext()) {
                Eletro eletro = new Eletro();

                eletro.setCodigo(scanner.nextInt());
                eletro.setDescricao(scanner.nextLine());
                eletro.dimensoes.setAltura(scanner.nextDouble());
                eletro.dimensoes.setLargura(scanner.nextDouble());
                eletro.dimensoes.setProfundidade(scanner.nextDouble());
                eletro.setPreco(scanner.nextDouble());
                eletro.setEstoque(scanner.nextInt());
                eletro.setCor(scanner.nextLine());

                produtos.add(eletro);
            }
            scanner.close();
        } catch (FileNotFoundException e) {
            System.out.println("Arquivo não encontrado!");
        }
    }

}
package itens;

public abstract class Produtos {
    private int codigo;
    private String descricao;
    private double preco;
    private int estoque;
    private String cor;

    public int getCodigo() {
        return codigo;
    }

    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public double getPreco() {
        return preco;
    }

    public void setPreco(double preco) {
        this.preco = preco;
    }

    public int getEstoque() {
        return estoque;
    }

    public void setEstoque(int estoque) {
        this.estoque = estoque;
    }

    public String getCor() {
        return cor;
    }

    public void setCor(String cor) {
        this.cor = cor;
    }
}
package itens;

public class Eletro extends Produtos {
    public Dimensoes dimensoes = new Dimensoes();
}
package itens;

public class Dimensoes {
    private double altura;
    private double largura;
    private double profundidade;

    public void setAltura(double altura) {
        this.altura = altura;
    }

    public double getAltura() {
        return this.altura;
    }

    public void setLargura(double largura) {
        this.largura = largura;
    }

    public double getLargura() {
        return this.largura;
    }

    public void setProfundidade(double profundidade) {
        this.profundidade = profundidade;
    }

    public double getProfundidade() {
        return this.profundidade;
    }
}

Alguém sabe o que pode ser? Agradeço se puderem me ajudar.

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java arquivos exception ou faça a sua própria pergunta.