閱讀665 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Java IO: RandomAccessFile

RandomAccessFile允許你來回讀寫文件,也可以替換文件中的某些部分。FileInputStream和FileOutputStream沒有這樣的功能。

創建一個RandomAccessFile

在使用RandomAccessFile之前,必須初始化它。這是例子:

1 RandomAccessFile file = new RandomAccessFile("c:\\data\\file.txt""rw");

請注意構造函數的第二個參數:“rw”,表明你以讀寫方式打開文件。請查閱Java文檔獲知你需要以何種方式構造RandomAccessFile。

在RandomAccessFile中來回讀寫

在RandomAccessFile的某個位置讀寫之前,必須把文件指針指向該位置。通過seek()方法可以達到這一目標。可以通過調用getFilePointer()獲得當前文件指針的位置。例子如下:

1 RandomAccessFile file = new RandomAccessFile("c:\\data\\file.txt""rw");
2  
3 file.seek(200);
4  
5 long pointer = file.getFilePointer();
6  
7 file.close();

讀取RandomAccessFile

RandomAccessFile中的任何一個read()方法都可以讀取RandomAccessFile的數據。例子如下:

1 RandomAccessFile file = new RandomAccessFile("c:\\data\\file.txt""rw");
2  
3 int aByte = file.read();
4  
5 file.close();

read()方法返回當前RandomAccessFile實例的文件指針指向的位置中包含的字節內容。Java文檔中遺漏了一點:read()方法在讀取完一個字節之後,會自動把指針移動到下一個可讀字節。這意味著使用者在調用完read()方法之後不需要手動移動文件指針。

寫入RandomAccessFile

RandomAccessFile中的任何一個write()方法都可以往RandomAccessFile中寫入數據。例子如下:

1 RandomAccessFile file = new RandomAccessFile("c:\\data\\file.txt""rw");
2  
3 file.write("Hello World".getBytes());
4  
5 file.close();

與read()方法類似,write()方法在調用結束之後自動移動文件指針,所以你不需要頻繁地把指針移動到下一個將要寫入數據的位置。

RandomAccessFile異常處理

為了本篇內容清晰,暫時忽略RandomAccessFile異常處理的內容。RandomAccessFile與其他流一樣,在使用完畢之後必須關閉。想要了解更多信息,請參考Java IO異常處理

最後更新:2017-05-23 12:02:40

  上一篇:go  Java 集合教程
  下一篇:go  xml 文件的頭部聲明