关于Java中RandomAccessFile类的seek方法

void seek( long pos):表示文件指针的偏移量。从文件的开头开始测量,在此位置进行下一步的读或写。

需要说明的一点是,seek方法中的参数单位是字节,而非字符。所以调用seek方法时,需要了解当前环境的编码格式,再进行指针偏移量的确定。(主要是对中文字符的处理)

在Java中由字符的编码格式来确定一个中文所占的字节数:

 编码格式  一个中文所占字节数
ISO-8859-1 1
GB2312 2
GBK 2
UTF-8 3

其中换行符和回车符在Java中都只占一个字节。

注意一点:对中文进行处理时,指针的偏移量应为当前环境下编码格式一个中文所占字节数为单位进行偏移,否则就会出现乱码。如:在GBK编码格式中一个中文占两个字节,偏移量为1、3、5等时,进行读和写,文字会出现乱码;偏移量以2个字符为单位进行偏移,偏移量为2,4,6等时,进行正常的读写,文字不会出现乱码。

 

你可能感兴趣的:(关于Java中RandomAccessFile类的seek方法)