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

JSR-75 文件操作入門筆記:四大核心功能完整代碼實現

     編輯:J2ME

JSR-75 FileConnection API 快速上手

JSR-75 分為 File (本地檔案系統) 與 PIM (個人資訊管理) 兩部分。本文聚焦 File 部分,提供四個開箱即用的工具方法:目錄列舉、檔案儲存、刪除、讀取。

1. 目錄與檔案列表獲取

/**
 * 取得指定路徑下的所有檔案與子目錄名稱
 * @param path 目錄 URL,必須以 '/' 結尾,如 "file:///c:/pictures/"
 * @return Vector 檔名/目錄名列表,失敗返回 null
 */
public Vector list(String path) {
    try {
        FileConnection fc = (FileConnection) Connector.open(path);
        if (!fc.exists()) return null;
        
        Vector listVec = new Vector(0, 1);
        Enumeration en = fc.list(); // 返回項目名,目錄以 '/' 結尾
        while (en.hasMoreElements()) {
            listVec.addElement((String) en.nextElement());
        }
        return listVec;
    } catch (Exception e) {
        System.out.println("listErr: " + e);
        return null;
    }
}

關鍵點:目錄路徑尾碼 / 不可省略,否則 list() 返回空。

2. 檔案建立與儲存 (支援二進位資料)

/**
 * 將位元組陣列儲存為檔案
 * @param path 完整檔案 URL,如 "file:///e:/data.bin"
 * @param fileData 任意二進位內容 (圖片、音訊、文字等)
 */
public void saveFile(String path, byte[] fileData) {
    try {
        FileConnection fc = (FileConnection) Connector.open(path);
        fc.create(); // 不存在則建立檔案
        fc.setWritable(true);
        OutputStream os = fc.openOutputStream();
        os.write(fileData);
        os.close();
        fc.close();
    } catch (Exception e) {
        System.out.println("saveFileErr: " + e);
    }
}

3. 檔案刪除

/**
 * 刪除指定檔案或空目錄
 * @param path 目標 URL
 */
public void deleteFile(String path) {
    try {
        FileConnection fc = (FileConnection) Connector.open(path);
        if (fc.exists()) fc.delete();
        fc.close();
    } catch (Exception e) {
        System.out.println("deleteFileErr: " + e);
    }
}

4. 檔案讀取 (完整讀入記憶體)

/**
 * 讀取檔案全部內容至位元組陣列
 * @param path 檔案 URL
 * @return 位元組陣列,失敗或不存在返回 null
 */
public byte[] readFile(String path) {
    try {
        FileConnection fc = (FileConnection) Connector.open(path);
        if (!fc.exists()) return null;
        
        InputStream is = fc.openInputStream();
        byte[] buffer = new byte[is.available()];
        is.read(buffer);
        is.close();
        fc.close();
        return buffer;
    } catch (Exception e) {
        System.out.println("readFileErr: " + path + e);
        return null;
    }
}

實戰應用場景

  • 離線快取:網路圖片/資料落地儲存,下次啟動即時顯示
  • 日誌記錄:執行期錯誤/事件寫入檔案,支援事後分析
  • 設定持久化:使用者偏好序列化為二進位/屬性檔
  • 資料匯出:將 RMS 記錄匯出為檔案,支援備份/傳輸

進階學習方向

  1. 大檔案分塊讀寫:避免 is.available() 分配超大記憶體
  2. 目錄遞迴操作:複製/移動/刪除整棵目錄樹
  3. 檔案系統監聽:部分實作支援檔案變更通知 (非標準 API)
  4. PIM 整合:通訊錄、行事曆、待辦事項的讀寫 (JSR-75 PIM 部分)

這四個方法構成了 J2ME 檔案操作的基礎工具箱,靈活組合即可滿足多數應用的本地存儲需求。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved