黑马程序员技术交流社区

标题: 关于RandomAccessFile.read()方法的问题 [打印本页]

作者: 刘晓康    时间: 2012-4-4 16:32
标题: 关于RandomAccessFile.read()方法的问题
import java.io.RandomAccessFile;
public class Test
{        
        public static void main(String[] args) throws Exception
        {
                RandomAccessFile rdf = new RandomAccessFile("abc.txt","rw");
                rdf.write(255);
                rdf.close();
               
                RandomAccessFile rd = new RandomAccessFile("abc.txt","rw");
                System.out.println(rd.read());
        }
}

write( int b)方法,向此文件写入指定的字节
这个方法我不太理解,1个字节能表示的最大数是255,read()方法是读取一个字节,所以write(255)的时候read()是能正确读出255的,如果write(256)则read()读出来的是0,这也说明了我write(int b)这个方法里如果给的参数是0-255的话,就是写入了一个字节,但如果我给的参数是256的话,那是写入了几个字节呀?该用什么方法把它正确的读出来呀?
作者: 贠(yun)靖    时间: 2012-4-4 17:08
write( int b)方法  是指将参数 b 的八个低位写入输出流。忽略 b 的 24 个高位。
  也就是说  int 32位的数  实际上只写最低的八位的数   9 - 32位的数就忽略了  不会写入到输出流当中了 所以当你写入的数据时256的时候 其实写的是0000 0000 这个字节 把
第9位的1 给忽略掉了    所以要写int数据的话 还是用 writeInt  方便   它是把write方法  封装到内部  完成int的全部写入了   




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2