Java RandomAccessFile的使用(轉載的文章,出處http://www.2cto.com/kf/201208/149816.html)

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();

 }

}至於向文件中間添加內容的話,也是很好解決的。先將指針移到指定位置,把後面的保存到臨時文件,再將指針移到指定位置,添加內容,而後再將臨時文件的類容加到後面就能夠了。

相關文章
相關標籤/搜索