A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 刘晓康 中级黑马   /  2012-4-4 16:32  /  1544 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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的话,那是写入了几个字节呀?该用什么方法把它正确的读出来呀?

1 个回复

倒序浏览
write( int b)方法  是指将参数 b 的八个低位写入输出流。忽略 b 的 24 个高位。
  也就是说  int 32位的数  实际上只写最低的八位的数   9 - 32位的数就忽略了  不会写入到输出流当中了 所以当你写入的数据时256的时候 其实写的是0000 0000 这个字节 把
第9位的1 给忽略掉了    所以要写int数据的话 还是用 writeInt  方便   它是把write方法  封装到内部  完成int的全部写入了   
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马