### Question:
BufferedFileInput implements RandomAccess, DataInput, Closeable { @Override public char readChar() throws IOException { return (char) (readShort() & 0xffff); } BufferedFileInput(RandomAccessFile file, int bufferSize);  BufferedFileInput(RandomAccessFile file, byte[] buffer); void sync(); void seek(long position); long getPosition(); long getSize(); @Override void readFully(byte[] b); @Override void readFully(byte[] b, int off, int len); @Override int skipBytes(int n); @Override boolean readBoolean(); @Override short readShort(); @Override byte readByte(); @Override int readInt(); @Override long readLong(); @Override float readFloat(); @Override double readDouble(); @Override int readUnsignedByte(); @Override int readUnsignedShort(); @Override char readChar(); @Override String readLine(); @Override String readUTF(); @Override void close();  }### Answer:
@Test public void testReadChar() throws Exception { RandomAccessFile file = file(); file.writeChar('a'); file.writeChar(0xa000); file.seek(0); BufferedFileInput buf = manage(new BufferedFileInput(file, 256)); assertThat(buf.readChar(), is('a')); assertThat(buf.readChar(), is((char) 0xa000)); eof(buf); }