国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

介紹J2ME可選包FileConnection

2019-11-18 16:09:39
字體:
來源:轉載
供稿:網友
    本文將介紹J2ME的可選包FileConnection Optional Package(以下簡稱FCOP),事實上FCOP是在JSR75中和Personal Information Management(PIM)一起發布的。這篇文章將簡單介紹一下FCOP的基本概念。

    如果讀者還不了解J2ME可選包的概念,請參考介紹J2ME可選包的概念;如果讀者想了解PIM的詳細概念和使用請參考J2ME可選包—PIM介紹。

    我們知道在J2ME中可以訪問Jar包內的文件,比如讀取其中的文本文件。但是我們不能創建新的文件,在MIDP中提供了Record Management System(RMS)子系統來實現本地的持久性存儲。之所以沒有提供文件操作的支持,主要是因為支持文件系統的移動信息設備非常的少,有些手機也是在擴展卡上提供了文件系統的支持,而不是主存上。FCOP就是為了解決這個問題的,FCOP是基于Connected Limited Devices Configuration(CLDC)的,因此它可以無縫的移植到Connected Devices Configuration(CDC)兼容的設備上。 

    使用FCOP操作文件主要通過兩種途徑:

    1.第一種方式是針對通過Generic Connection Framework(GCF)來訪問文件系統的平臺,這時候你可以通過在URL中使用file://格式來訪問文件,比如:
...
import javax.microedition.io.*;
   
String url = "file:///data.txt";
InputConnection conn = null;
int mode = Connector.READ_ONLY;
 
try {
    conn =(InputConnection) Connector.open( url, mode );
}
catch( IOException ioe ){
    // no file
}
...

    這種情況下,即使你的選定的設備不支持FCOP也是可行的。CDC兼容的設備都可以選擇這樣的方式來訪問文件系統的文件。通過制定mode為Connector.READ_WRITE和Connector.WRITE_ONLY并返回StreamConnection或者OutputConnection就可以進行寫文件了。

    2.第二種方法是通過使用FileConnection來進行文件的讀寫操作,首先你必須檢查選定的設備是否支持FileConnection。通過如下方式:
...
// Check that the File Connection Optional Package is there

String v = System.getPRoperty(
    "microedition.io.file.FileConnection.version" );

if( v != null ){
    // FCOP available
} else {
    // FCOP not available
}
...

如果v返回為null那么說明不支持FCOP,否則應該返回版本號,比如1.0。

    使用FileConnection的時候同樣是按照GCF的訪問方式,這時候你還是應該使用file://作為URL的前綴,返回類型為FileConnection的接口,FileConnection接口擴展了StreamConnection,并且添加了很多對文件進行操作的方法,這些方法和java.io.File十分類似。通常你提供的URL應該類似如下形式

http://www.j2medev.com/Article/Class1/Class16/200503/file:///SDCard/users.txt

    在WTK 2.2中提供了對FCOP的支持,你可以使用WTK22做相關的程序開發,注意使用FCOP的時候你首先應該掛載文件系統。后面的一篇文章將詳細介紹如何使用FCOP以及WTK22對FCOP的支持。

  下面的代碼演示了如何列舉出目錄下的文件:

...
String url = "file:///SDCard";
FileConnection conn = null;
   
try {
    conn = (FileConnection) Connector.open( url );
    if( conn.isDirectory() ){
        Enumeration names = conn.list();
        while( names.hasMoreElements() ){
            String name = (String) e.nextElement();
            // do something
        }
    } else {
        // not a directory!
    }
}
catch( IOException e ){
    // could not access the URL
}
catch( SecurityException e ){
    // no permission to read the directory
}
...


如果文件不存在你也可以使用FileConnection.create()來創建文件。代碼如下:

...
String url = "http://www.j2medev.com/Article/Class1/Class16/200503/file:///SDCard/myfile.txt";
FileConnection conn = null;

try {
    conn = (FileConnection) Connector.open( url,
     Connector.WRITE_ONLY );
    if( conn.create() ){ // create the file
 OutputStream out = conn.openOutputStream();
 // now write data to the file
    }

    conn.close();
}
catch( IOException e ){
    // error
}
catch( SecurityException e ){
    // no permission to create/write
}
...


在java.microedition.io.file中提供了一個FileSystemRegistry類用于查詢可用的文件系統,當然也有一些其他的作用,在下文中降做詳細介紹。我們應該注意FileConnection中的方法都有可能拋出SecurityException。但是FCOP并沒有定義相關的安全模型,而是把這個任務留給了配置(Configuration)和簡表(Profile)。比如MIDP2.0中定義的安全模型。

    總結:本文簡單介紹了FCOP的概念以及基本的使用,建議大家參考FCOP的java doc獲得更多的使用信息,讀者可以從http://jcp.org 獲得關于jsr75的規范和文檔。

(出處:http://www.survivalescaperooms.com)



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 灵石县| 沅陵县| 方山县| 内丘县| 聂荣县| 浪卡子县| 吴旗县| 德保县| 沙田区| 新郑市| 达尔| 石河子市| 长治市| 伊通| 梨树县| 喀喇沁旗| 溧阳市| 南和县| 都江堰市| 扶绥县| 文水县| 鄂州市| 伊宁县| 萍乡市| 广南县| 宁蒗| 稻城县| 华阴市| 库车县| 景宁| 子洲县| 邻水| 丰县| 施秉县| 东乌珠穆沁旗| 元朗区| 原平市| 岳阳县| 绍兴市| 玉山县| 高密市|