Allora, parseInt di Integer lancia un'eccezione se non riesce a parsare un valore che sia un intero (da una stringa), potresti sfruttare questa situazione per avvertire dell'errore di immissione e richiedere una nuova immissione.

codice:
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

        int numero;
        boolean flag = false;
        System.out.print("Immetti intero: ");
        while (!flag) {            
            try {                
                Integer integer = Integer.parseInt(in.readLine());
                numero = integer.intValue();
                flag = true;
            }
            catch (Exception e) {
                System.out.print("Dato non valido\nImmetti intero: ");
                flag = false;
            }
        }