首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

Java 100例:隨機存取檔案 (RandomAccessFile)

     編輯:Java 程式設計入門

RandomAccessFile 支援檔案任意位置讀寫,適用於固定長度記錄的資料檔。範例寫入 10 筆 double 值,修改第 6 筆 (索引 5),再讀回全部列印。模式 "rw" 可讀寫,"r" 唯讀。

import java.io.*;

public class RandFileDemo {
    public static void main(String[] args) {
        if (args.length < 1) { System.out.println("用法: java RandFileDemo 檔名"); return; }
        String file = args[0];
        try {
            // 寫入 10 筆 double
            try (RandomAccessFile raf = new RandomAccessFile(file, "rw")) {
                for (int i = 0; i < 10; i++) raf.writeDouble(i * 1.414);
            }
            // 修改第 6 筆 (位移 5*8 bytes)
            try (RandomAccessFile raf = new RandomAccessFile(file, "rw")) {
                raf.seek(5 * 8);
                raf.writeDouble(47.0001);
            }
            // 讀回全部
            try (RandomAccessFile raf = new RandomAccessFile(file, "r")) {
                for (int i = 0; i < 10; i++)
                    System.out.println("Value " + i + ": " + raf.readDouble());
            }
        } catch (IOException e) { System.out.println(e); }
    }
}

關鍵點:

  • seek(long pos) 移動檔案指標;getFilePointer() 取得目前位置。
  • 每個 double 佔 8 bytes,定位需乘以 8。
  • 適合固定結構資料 (如索引檔、簡易資料庫);文字檔或變長記錄不建議使用。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved