I've set up a sequential scanner, where a RandomAccessFile pointing to my file is able to read a single character, via the below method:

```
public char nextChar() {
    try {
        seekPointer++;
        int i = source.read();
        return i > -1 ? (char) i : '\0'; // INFO: EOF character is -1.
    } catch (IOException e) {
        e.printStackTrace();
    }
    return '\0';
}

```

The `seekPointer` is just a reference for my program, but the method stores `source.read()` in an `int`, and then returns it casted to a `char` if its not the end of the file. But these chars that I'm receiving are in ASCII format, infact its so bad that I can't even use a symbol such as **ç**.

Is there a way that I can receive a **single** character, that is in UTF-8 format or atleast something standardised that allows more than just the ASCII character set?

I know I can use `readUTF()` but that returns an entire line as a String, which is not what I am after.

Also, I can't simply use another stream reader, because my program requires a `seek(int)` function, allowing me to move back and forth in the file.