RandomAccessFile支持对于文件的随机访问(而不是只能从头开始读写),创建RandomAccessFile对象时需要传入mode参数,该参数有4个值:r(read), rw(read,write), rws(read, write and store data and file into device memory),rwd((read, write and store file into device memory).

public class RandomAcessFileTest {
    public static void main(String[] args) {
        try (RandomAccessFile raf = new RandomAccessFile("newFile.txt", "rw")) {
            System.out.println("The initial local of RandomAccessFile's index:"
                    + raf.getFilePointer());
            byte[] bbuf = new byte[1024];
            int hasRead = 0;
            while ((hasRead = raf.read(bbuf)) > 0) {
                System.out.println(new String(bbuf, 0, hasRead));
            }
            // move the index
            raf.seek(20);
            raf.write("hello, apend\r\n".getBytes());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}