最近由於開發需要,研究了一下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();