Java的RandomAccessFile提供對文件的讀寫功能,與普通的輸入輸出流不同的是RamdomAccessFile能夠任意的訪問文件的任何地方。這就是「Random」的意義所在。java
RandomAccessFile的對象包含一個記錄指針,用於標識當前流的讀寫位置,這個位置能夠向前移動,也能夠向後移動。RandomAccessFile包含兩個方法來操做文件記錄指針。dom
long getFilePoint():記錄文件指針的當前位置。指針
void seek(long pos):將文件記錄指針定位到pos位置。對象
RandomAccessFile包含InputStream的三個read方法,也包含OutputStream的三個write方法。同時RandomAccessFile還包含一系列的readXxx和writeXxx方法完成輸入輸出。get
mode的值有四個it
"r":以只讀文方式打開指定文件。若是你寫的話會有IOException。io
"rw":以讀寫方式打開指定文件,不存在就建立新文件。class
"rws":不介紹了。import
"rwd":也不介紹。方法
下面是從中間開始讀取文件
[java]
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));
}
}
}
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));
}
}
}
下面是在文件最後加入內容
[java]
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();
}
}
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();
}
}至於向文件中間添加內容的話,也是很好解決的。先將指針移到指定位置,把後面的保存到臨時文件,再將指針移到指定位置,添加內容,而後再將臨時文件的類容加到後面就能夠了。