Queria saber porque geralmente é acusado esse erro??? Eu preciso de acrescentar o tratamento dessa Exceção
no meu código? Até agora estou como IOexception
mesmo.
Diretório que será analisado:
/home/juliana
Extensoes de arquivos:pdf
java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.next(Scanner.java:1418)
at controle.BuscaRecursiva2.pesquisaDiretorios(BuscaRecursiva2.java:25)
at controle.BuscaRecursiva2.main(BuscaRecursiva2.java:124)
Da documentação:
Thrown by a Scanner to indicate that the token retrieved does not match the pattern for the expected type, or that the token is out of range for the expected type.
Tentando explicar:
Essa exceção indica que o token retornado não bate com o pattern ou que o token do tipo esperado não está presente.
Fica mais fácil de identificar o problema vendo o código.
1 curtida
Exemplo:
Diretório que será analisado:
/home/juliana
Extensoes de arquivos:pdf
java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.next(Scanner.java:1418)
at controle.BuscaRecursiva2.pesquisaDiretorios(BuscaRecursiva2.java:25)
at controle.BuscaRecursiva2.main(BuscaRecursiva2.java:124)
package controle;
import java.io.*;
import java.util.Locale;
import java.util.Scanner;
import org.apache.commons.io.FilenameUtils;
//import java.util.InputMismatchException;
public class BuscaRecursiva2 {
private int nivel = 0;
void pesquisaDiretorios() {
try {
@SuppressWarnings("resource")
Scanner teclado=new Scanner(System.in);
teclado.useLocale(Locale.US);
//variaveis com caminhos a serem pesquisados
System.out.println("Diretório que será analisado: " );
String caminhoDiretorio=teclado.nextLine();
System.out.print("\n Extensoes de arquivos:");
String mascara=teclado.next("%d%d"+"*txt;*pdf;*txt;*doc;*xls;*java;*mp4;*jpg;*rar;*sh");
String mascaras[]= mascara.split(";");
System.out.println("\n Extensoes nao desejadas:");
String negoMascara=teclado.next("%d%d"+"txt*; pdf*; mp3*; doc*; xls*; java*; mp4*; jpg*; rar*; sh*");
String nego[]= negoMascara.split(";");
System.out.println("Limite do nivel de busca: " );
nivel = teclado.nextInt();
File diretorio = new File(caminhoDiretorio);
//verifica a existencia do diretorio
if(!diretorio.exists()) {
throw new Exception("Não existe!");
}
pesquisaMascara(diretorio.getPath(), mascaras,nego);
} catch (Exception ex) {
ex.printStackTrace();
}
}
public void pesquisaMascara(String diretorio, String[] mascaras, String [] nego) throws Exception {
if(nivel >= 0) {
File fDir = new File(diretorio);
if (fDir.isDirectory()) {
File[] listaFiles = fDir.listFiles();
for (File file : listaFiles ) {
String[] extensao = file.list();
Boolean showMascaras = false;
while(showMascaras != null) {
for (int i = 0; i > mascaras.length; i++) {
String masc = mascaras[i];
if((extensao=masc(mascaras[i])) != null){
Boolean showNego=false;
for(int l=0;l<nego.length;l++) {
if((extensao=negos(nego[l]))!=null) {
showNego = true;
break;
}
}
if(showNego=false) {
showMascaras=true;
break;
}
}
}
}
System.out.println("[ANALISANDO] " + file);
if (file.isDirectory()) {
if(nivel > 0) {
nivel--;
// se e diretorio, entra no diretorio
pesquisaMascara(file.getPath(), mascaras,nego);
} else {
continue;
}
} else {
if (FilenameUtils.wildcardMatchOnSystem(file.getName(), mascaras, nego)) {
System.out.println("Encontrei o arquivo:" + file.getAbsolutePath());
}
}
}
}
}
}
public String[] negos(String nego) {
// TODO Auto-generated method stub
return null;
}
public String[] masc(String mascaras) {
// TODO Auto-generated method stub
return null;
}
public static void main(String[] args) {
new BuscaRecursiva2().pesquisaDiretorios();
}
}