Java RandomAccessFile的使用
Java的RandomAccessFile提供對(duì)文件的讀寫功能,與普通的輸入輸出流不一樣的是RamdomAccessFile可以任意的訪問文件的任何地方。這就是“Random”的意義所在。
RandomAccessFile的對(duì)象包含一個(gè)記錄指針,用于標(biāo)識(shí)當(dāng)前流的讀寫位置,這個(gè)位置可以向前移動(dòng),也可以向后移動(dòng)。RandomAccessFile包含兩個(gè)方法來操作文件記錄指針。
long getFilePoint():記錄文件指針的當(dāng)前位置。
void seek(long pos):將文件記錄指針定位到pos位置。
RandomAccessFile包含InputStream的三個(gè)read方法,也包含OutputStream的三個(gè)write方法。同時(shí)RandomAccessFile還包含一系列的readXxx和writeXxx方法完成輸入輸出。
RandomAccessFile的構(gòu)造方法如下
mode的值有四個(gè)
"r":以只讀文方式打開指定文件。如果你寫的話會(huì)有IOException。
"rw":以讀寫方式打開指定文件,不存在就創(chuàng)建新文件。
"rws":不介紹了。
"rwd":也不介紹。
下面是從中間開始讀取文件
import java.io.RandomAccessFile;public class work {public static void main(String[] args) throws Exception{RandomAccessFile raf=new RandomAccessFile("work","r");raf.seek(4);byte []buffer=new byte[100];int len=0;while((len=raf.read(buffer, 0, 100))!=-1){System.out.println(new String(buffer,0,len));}}}
下面是在文件最后加入內(nèi)容
import java.io.RandomAccessFile;public class work {public static void main(String[] args) throws Exception{RandomAccessFile raf=new RandomAccessFile("work","rw");raf.seek(raf.length());raf.write("hello world!".getBytes());raf.close();}}
至于向文件中間添加內(nèi)容的話,也是很好解決的。先將指針移到指定位置,把后面的保存到臨時(shí)文件,再將指針移到指定位置,添加內(nèi)容,然后再將臨時(shí)文件的類容加到后面就可以了。這個(gè)我就不實(shí)現(xiàn)了,先看看《大秦帝國(guó)》21集,里面商鞅為大秦變法很犀利的,執(zhí)法太嚴(yán)了,舍友正在看,呵呵,走了。
?
轉(zhuǎn)載于:https://www.cnblogs.com/javaspring/archive/2012/08/21/2655971.html
總結(jié)
以上是生活随笔為你收集整理的Java RandomAccessFile的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如果你喜欢一个程序员小伙
- 下一篇: UVa 10180 - Rope Cri