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