Aparece esse erro pra mim
java.util.NoSuchElementException: No line found
Preciso criar algum arquivo vazio csv?
Aparece esse erro pra mim
java.util.NoSuchElementException: No line found
Preciso criar algum arquivo vazio csv?
Olá, Lucas! Tudo bem?
O erro java.util.NoSuchElementException: No line found
geralmente ocorre quando você está tentando ler uma linha de um arquivo ou entrada, e essa linha não existe.
No contexto do seu teste, parece que você está tentando usar um Scanner
para ler dados de uma entrada. Se essa entrada estiver vazia ou não existir, você receberá esse erro.
A sua pergunta sobre a necessidade de criar um arquivo CSV vazio é interessante. No entanto, acredito que a solução para o seu problema não esteja diretamente relacionada à criação de um arquivo CSV vazio, mas sim em como você está manipulando a entrada de dados no seu teste.
Vamos supor que você tem um método chamado importarPetsDoAbrigo
na classe PetService
, que usa um Scanner
para ler dados de uma entrada. Quando você está testando esse método, você precisa garantir que essa entrada contém os dados que o método está esperando ler.
Uma maneira de fazer isso seria criar uma String que contém os dados que você deseja passar para o método. Em seguida, você poderia criar um InputStream
a partir dessa String e definir esse InputStream
como a entrada padrão do sistema antes de chamar o método que você está testando. Aqui está um exemplo de como você poderia fazer isso:
String data = "alguns dados para o método ler";
InputStream input = new ByteArrayInputStream(data.getBytes());
System.setIn(input);
// Agora, quando o método importarPetsDoAbrigo for chamado, ele lerá os dados da String que você definiu.
Lembre-se, é sempre importante garantir que sua entrada de dados esteja corretamente configurada antes de chamar o método que você está testando.
Espero ter ajudado e bons estudos!
Lucas, eu tive o mesmo problema.
Consegui resolver simplesmente alterando o código na classe do petsService.
Alterei o código do scanner para:
Scanner scanner = new Scanner(System.in);
System.out.println("Digite o id ou nome do abrigo:");
String idOuNome = scanner.nextLine();
System.out.println("Digite o nome do arquivo CSV:");
String nomeArquivo = scanner.nextLine();
scanner.close();
Lembre de fechar o scanner!
O código anterior era:
System.out.println("Digite o id ou nome do abrigo:");
String idOuNome = new Scanner(System.in).nextLine();
System.out.println("Digite o nome do arquivo CSV:");
String nomeArquivo = new Scanner(System.in).nextLine();
Aparentemente isso que gerava o erro de não encontrar a segunda linha do input.