usando java.util.Scanner para ler um byte de arquivo por byte

Eu estou tentando ler um caractere de arquivo de uma linha por caractere usando java.util.Scanner. No entanto estou recebendo essa exceção ":

Exception in thread "main" java.util.InputMismatchException: For input string: "contents of my file"
    at java.util.Scanner.nextByte(Scanner.java:1861)
    at java.util.Scanner.nextByte(Scanner.java:1814)
    at p008.main(p008.java:18) <-- line where I do scanner.nextByte()

Aqui está meu código:

public static void main(String[] args) throws FileNotFoundException {
    File source = new File("file.txt");
    Scanner scanner = new Scanner(source);
    while(scanner.hasNext()) {
        System.out.println((char)scanner.nextByte());
    }
    scanner.close()
}

Alguém tem alguma idéia do que eu possa estar fazendo errado?

Edit: percebi que escrevi hasNext () em vez de hasNextByte (). No entanto, se eu fizer isso, não imprime nada.

questionAnswers(4)

yourAnswerToTheQuestion