Java RandomAccessFile的读取问题

代码如下:
public static void main(String[] args) {
//(十) 使用随机文件流类RandomAccessFile将一个文本文件倒置读出。
File file = new File("ma.dat");

     try {
        RandomAccessFile raf = new 
                 RandomAccessFile(file,"r");
        //???
        int b=raf.read();
        System.out.println(b);
        /*int b  = raf.readByte();

        System.out.println(b);*/

        int c=raf.readByte();
        System.out.println(c);
        int d=raf.readByte();
        System.out.println((char)d);

        char  ch = '建';
        System.out.println(Integer.toBinaryString(ch));
        //101111011111010

    } catch (FileNotFoundException e) {

        e.printStackTrace();
    } catch (IOException e) {

        e.printStackTrace();
    }



}

然后ma.dat里的内容是:

建2ield&*@`

中文乱码
如何解决?

打印到控制台的结果是:
189
-88
2
101111011111010

为什么结果是189,-88???后面的2和101111011111010我懂。就是不懂前面二个结果?求大牛解答!感激不尽!

换个类输入东西吧,别用那个类就行。