第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

RandomAccessFile文件讀取操作

RandomAccessFile文件讀取操作

初心者3612361 2016-11-13 22:36:17
程序一:public class Test08 {?public static void main(String[] args) throws Exception {??RandomAccessFile raf=new RandomAccessFile("raf.dat", "rw");??int max=Integer.MAX_VALUE;??long lon=Long.MAX_VALUE;??raf.writeInt(max);??raf.seek(0);??System.out.println(raf.readInt());??System.out.println(raf.getFilePointer());??//插入代碼raf.seek(4);??raf.writeLong(lon);??System.out.println(raf.readLong());?}}執(zhí)行結(jié)果:21474836474Exception in thread "main" java.io.EOFException?at java.io.RandomAccessFile.readInt(Unknown Source)?at java.io.RandomAccessFile.readLong(Unknown Source)?at day06.Test08.main(Test08.java:23)程序二:public class Test08 {?public static void main(String[] args) throws Exception {??RandomAccessFile raf=new RandomAccessFile("raf.dat", "rw");??int max=Integer.MAX_VALUE;??long lon=Long.MAX_VALUE;??raf.writeInt(max);??raf.writeLong(lon);??raf.seek(0);??System.out.println(raf.readInt());??System.out.println(raf.getFilePointer());??System.out.println(raf.readLong());?}}結(jié)果:214748364749223372036854775807兩者只是??raf.writeLong(lon);?位置不同,為什么一個包異常,一個正常運行,程序一插入代碼任有問題,這是為何???
查看完整描述

1 回答

已采納
?
四無小青年

TA貢獻(xiàn)88條經(jīng)驗 獲得超43個贊

問題出在readLong()和writeLong()這個兩個方法,在JDK API文檔中提到過readLong()方法會從當(dāng)前指針位置開始向后面讀取八個字節(jié),如果在讀取八個字節(jié)之前此文件已到達(dá)末尾會拋出EOFException異常。

你第一個程序在使用writeLong()之后,文件指針指向了最后一位,此時你再使用readLong()就會在讀取八位之前就到達(dá)文尾部。

第二個程序沒有報錯是因為你在readLong()之前使用seek()把文件指針移動到了0號位置,此時再使用readLong()就能讀完八個字節(jié)而不報錯了。

如果為題主解了惑的話,請采納


查看完整回答
1 反對 回復(fù) 2016-11-17
  • 1 回答
  • 0 關(guān)注
  • 2334 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號