Java IO: RandomAccessFile
轉(zhuǎn)載自? ?Java IO: RandomAccessFile
譯文鏈接?作者:?Jakob?Jenkov?譯者:?李璟(jlee381344197@gmail.com)
RandomAccessFile允許你來回讀寫文件,也可以替換文件中的某些部分。FileInputStream和FileOutputStream沒有這樣的功能。
創(chuàng)建一個(gè)RandomAccessFile
在使用RandomAccessFile之前,必須初始化它。這是例子:
請(qǐng)注意構(gòu)造函數(shù)的第二個(gè)參數(shù):“rw”,表明你以讀寫方式打開文件。請(qǐng)查閱Java文檔獲知你需要以何種方式構(gòu)造RandomAccessFile。
在RandomAccessFile中來回讀寫
在RandomAccessFile的某個(gè)位置讀寫之前,必須把文件指針指向該位置。通過seek()方法可以達(dá)到這一目標(biāo)。可以通過調(diào)用getFilePointer()獲得當(dāng)前文件指針的位置。例子如下:
RandomAccessFile file = new RandomAccessFile("c:\\data\\file.txt", "rw"); file.seek(200); long pointer = file.getFilePointer(); file.close();讀取RandomAccessFile
RandomAccessFile中的任何一個(gè)read()方法都可以讀取RandomAccessFile的數(shù)據(jù)。例子如下:
RandomAccessFile file = new RandomAccessFile("c:\\data\\file.txt", "rw"); int aByte = file.read(); file.close();read()方法返回當(dāng)前RandomAccessFile實(shí)例的文件指針指向的位置中包含的字節(jié)內(nèi)容。Java文檔中遺漏了一點(diǎn):read()方法在讀取完一個(gè)字節(jié)之后,會(huì)自動(dòng)把指針移動(dòng)到下一個(gè)可讀字節(jié)。這意味著使用者在調(diào)用完read()方法之后不需要手動(dòng)移動(dòng)文件指針。
寫入RandomAccessFile
RandomAccessFile中的任何一個(gè)write()方法都可以往RandomAccessFile中寫入數(shù)據(jù)。例子如下:
RandomAccessFile file = new RandomAccessFile("c:\\data\\file.txt", "rw"); file.write("Hello World".getBytes()); file.close();與read()方法類似,write()方法在調(diào)用結(jié)束之后自動(dòng)移動(dòng)文件指針,所以你不需要頻繁地把指針移動(dòng)到下一個(gè)將要寫入數(shù)據(jù)的位置。
RandomAccessFile異常處理
為了本篇內(nèi)容清晰,暫時(shí)忽略RandomAccessFile異常處理的內(nèi)容。RandomAccessFile與其他流一樣,在使用完畢之后必須關(guān)閉。想要了解更多信息,請(qǐng)參考Java?IO異常處理。
總結(jié)
以上是生活随笔為你收集整理的Java IO: RandomAccessFile的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java IO: FileOutputS
- 下一篇: java美元兑换,(Java实现) 美元