今天尝试着用RandomAccessFile类。
需求是将一个int类型的数组写入到一个文件,然后读取这个文件的内容,倒序输出。(题目提示int为4个字节)
一开始用xxxx.write() 写入,然后用.read(); 然后测试了一下可以成功,然后测试文件长度结果显示为10。
于是猜想,如果默认的调用xxx.write()里面的数据默认每个元素为1个字节(但是编译出错是有提醒过这里为int类型)于是尝试只写入一个大于byte型最大值的数字259,然后继续使用xxx.read()按字节读取结果长度就变为4了。
有没有高手给讲一下里面的过程,而且告诉为什么是4,分别用seek将指示器放到0,1,2,3时四个数字是什么?怎么来的? (跟补码反码什么的有关么?那个东西只能记住一时,感觉好无力阿。:()
PS: 另外发现一个问题,当更改了数组里面的数据之后长度由10-40可是改回去之后不会变成10(原因应该都懂的)。因此不要猜想以上数据有问题,删除过进行测试了的。 |
|