Java中如何使用隨機存取檔案RandomAcessFile類?
InputStream和OutputStream都只是單方面的讀和寫檔案的內容,如果有隨機的讀取和寫入檔案內容的需要那該怎麼辦?
Java為我們提供了一個RandomAcessFile類,它就是專門用來隨機存取檔案的內容的。
RandomAcessFile操作檔案內容的時候,就好像操作一塊記憶體區域一樣。把位元組用下標數字來進行定位,通過呼叫RandomAcessFile的API方法,把指標的指向進行一定,達到隨機存取資料的目的,主要的方法如下:
length() 得到檔案內容的位元組長度
seek() 設定到此檔案開頭測量到的檔案指標偏移量,在該位置發生下一個讀取或寫入操作。
read()和write() 讀取和寫入位元組資料
以下是將檔案中的所有字母a換成字母的c的示例程式。
public class Test5 {
public static void main(String[] args) {
try {
//建立隨機讀取檔案物件
RandomAccessFile file=new RandomAccessFile("D://1.txt", "rw");
//遍歷file的位元組的資料
try {
for (int i = 0; i < file.length(); i++) {
byte b=(byte) file.read();//read()方法讀取一個位元組
char c=(char) b;//轉換成char型別
if(c=='a'){
file.seek(i);
file.write('c');//這個位置寫入新的字元
}
}
file.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
說明:RandomAcessFile的大多數方法都會丟擲IOException,以上示例程式只是簡單的try-catch,而在實際的開發中,應該針對不同的情況,不同的異常做出不同的響應。
總結:
RandomAcessFile的使用思路主要包括以下一些專案:
1.用length()方法獲取檔案的內容長度
2.用seek()方法隨機的到達任何需要儲存資料的地方
3.呼叫read()方法獲取當前位置的資料,用write()方法寫入資料
4.完成需要後,調研close方法關閉檔案的開啟
相關文章
- java RandomAccessFile類(隨機訪問檔案)JavarandomMac隨機
- [java IO流]之 隨機訪問檔案(RandomAccessFile類)Java隨機randomMac
- 檔案中隨機讀取行問題隨機
- Java —— 檔案類(File 類)Java
- 使用Math類生成隨機數隨機
- Java虛擬機器——類檔案結構Java虛擬機
- java中檔案如何加密壓縮?Java加密
- Java的簡單理解(25)---(隨機訪問檔案)RandomAccessFileJava隨機randomMac
- Java 異常 隨機數 包裝類Java隨機
- Java學習關於隨機數工具類--Random類Java隨機random
- 利用ADOTable存取Excel檔案 (轉)Excel
- Java : File 檔案類操作Java
- Perl IO:隨機讀寫檔案隨機
- 生成固定大小的隨機檔案隨機
- java io 多種檔案操作方式(位元組、字元、行、隨機)Java字元隨機
- Java虛擬機器,類檔案結構深度解析Java虛擬機
- Java虛擬機器之Class類檔案結構Java虛擬機
- python中如何隨機分配Python隨機
- 資料庫學習:在資料庫中存取檔案(轉)資料庫
- Swift 中隨機數的使用Swift隨機
- File類的特點?如何建立File類物件?Java中如何操作檔案內容,什麼是Io流Io流如何讀取和寫入檔案?位元組緩衝流使用原則?物件Java
- java中Scanner類使用Java
- Java™ 教程(管理原始檔和類檔案)Java
- java 檔案處理 工具類Java
- JAVA Class類檔案結構Java
- JFileChooser:ExampleFileFilter.java 類檔案FilterJava
- 深入理解Java虛擬機器(類檔案結構)Java虛擬機
- 深入理解Java虛擬機器 – 類檔案結構Java虛擬機
- 深入學習Java虛擬機器——類檔案結構Java虛擬機
- CSS中如何實現偽隨機?CSS隨機
- Python中如何生成隨機數?Python隨機
- Java從List中獲取隨機元素Java隨機
- 【深入Java虛擬機器】之二:Class類檔案結構Java虛擬機
- Java中的Reference類使用Java
- JAVA類檔案操作和異常Java
- Java壓縮檔案生成工具類Java
- Java中的類反射機制Java反射
- 在Oracle中存取BLOB物件實現檔案的上傳和下載Oracle物件