程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2ME >> 文件操作-JSR75包使用總結

文件操作-JSR75包使用總結

編輯:J2ME
最近由於開發需要,研究了一下J2ME的文件系統操作(JSR75),對常用操作進行了一下總結。

 (1)判斷 手機是否支持文件系統

 /**
  * 檢測手機是否支持文件系統
  * @return
  */
 public boolean isSupportFileSystem(){
  String v = System
  .getProperty("microedition.io.file.FileConnection.version");
  if(v!=null)return true;
  return false;
 }
 通過判斷System的Property是否存在來判斷。

(2)打開文件連接
          無論是要讀文件還是要寫文件,首先必須得到該文件的Connection。
          使用Connector.open方法,有2個參數,第一個參數是路徑,第二個參數是權限。
          權限沒什麼好說的了,一共就3個可能:Connector.READ、Connector.WRITE、Connector.READ_WRITE。
          現在來說說路徑,路徑是以URL形式書寫的,以"file://"開頭,如果是本機上的文件就加上localhost,即如果是E:/a.dat文件的路徑應該是"file://localhost/E:/a.dat"。

          順便說說手機的目錄結果,由於我是使用S60第3版的機器進行測試,所以介紹一下其目錄結構。KJava程序可訪問的驅動器就2個:C和E(如果有擴展卡)。E驅動器下所有目錄文件都可以訪問,路徑是E:/開始;C驅動則不是,只有圖片、聲音和影像三個目錄可以訪問,訪問其它目錄將拋SecurityException,其這三個目錄的路徑分別是C:/data/Images、C:/data/Sounds、C:/data/Videos。怎麼知道有哪些目錄可以訪問呢,很簡單把WTK自帶的PDADemo放在手機上,運行FileBrowser測試一下就行了。

            FileConnection fc = (FileConnection)
                Connector.open(file://localhost/E:/a.dat  , Connector_READ_WRITE);

(3)讀文件
           InputStream fis = fc.openInputStream();    

          很簡單,就是用openInputStream打開一個流,和讀取網絡數據一樣,這裡就不贅述了。
(4)寫文件

        byte[] b="Hello World".getBytes();

          OutputStream fos = fc.openOutputStream();   

          fos.write(b,0,b.length);

          使用方法也是和寫網絡數據一樣,打開一個OutputStream就可以了,不過有一點要注意的(在N93上測試的結果,其它機器不清楚),寫文件總是從開頭開始寫,而且不會清空原來的內容。例如本來文件中有內容abcdefghijk,再打開文件往裡面寫入123,最後文件的內容是什麼呢?不是abcdefghijk123,也不是123,而是123defghijk。那麼需要續寫文件怎麼辦?我的做法的先把原內容讀出到一個StringBuffer中,再續寫在StringBuffer裡,再寫入文件,不知道還有沒有更方便的方法。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved