FileConnection(FC) @ 3/24/2006

技术类
FC api是JSR 75, PDA Optional Packages for the J2ME Platform的一部分,用于访问本地文件系统。

FC api通过Generic Connection Framework(GCF)访问文件系统,允许访问包括存储卡在内的文件系统。

包括如下两个接口和三个类:
FileConnection 访问文件和文件夹的接口。
FileSystemListener 添加删除根目录文件系统的状态监听的接口。
FileSystemRegistry 添加删除根目录文件系统的接口注册类。

ConnectionClosedException 当一个文件句柄的操作被调用,而文件已经被关闭时抛出的异常。
IllegalModeException 当操作所对应的模式不被文件打开模式支持时抛出的异常。

判断是否支持FC:
if(System.getProperty("microedition.io.file.FileConnection.version") != null){ // file.separator
    // FCOP available
} else {
    // FCOP not available
}
打开文件:
// CFCard/:
FileConnection fc = (FileConnection) Connector.open("file:///CFCard/");
// SDCard/:
FileConnection fc = (FileConnection) Connector.open("file:///SDCard/");
// MemoryStick/:
FileConnection fc = (FileConnection) Connector.open("file:///MemoryStick/");
// C:/:
FileConnection fc = (FileConnection) Connector.open("file:///C:/");
// / File:
Connection fc = (FileConnection) Connector.open("file:////");
只读方式打开一个文件:
String url = "file:///data.txt";
InputConnection conn = null;
int mode = Connector.READ_ONLY;
 
try {
    conn =(InputConnection) Connector.open( url, mode );
    // Always check whether the file or directory exists.
    // Create the file if it doesn't exist.
    if(!conn.exists()) {
    }
} catch( IOException ioe ){
    // no file
}
创建一个文件:
String url = "file:///SDCard/data.txt";
FileConnection conn = null;
int mode = Connector.WRITE_ONLY;
try {
    conn = (FileConnection)Connector.open(url, mode);
    if(filecon.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
}
列举一个目录下的文件:
// FileConnection.list(String filter, boolean includeHidden)
String url = "file:///C:/";
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
}
读取文件内容:
String url = "file:///CFCard/data.txt";
InputConnection conn = null;
int mode = Connector.READ_ONLY;

try {
    FileConnection fc = (FileConnection)Connector.open(url, mode);
    if(!fc.exists()) {
        throw new IOException("File does not exist");
    }
    InputStream is = fc.openInputStream();
    byte b[] = new byte[1024];
    int length = is.read(b, 0, 1024);
    System.out.println("Content of "+fileName + ": "+ new String(b, 0, length));
} catch (Exception e) {
}

发布于 3/24/2006 17:31:09 | 评论:0

看帖要回帖...

categories
archives
links
statistics
  • 网志数:1170
  • 评论数:2013