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, 01024);
    System.out.println(
"Content of "+fileName + ""+ new String(b, 0, length));
}
 catch (Exception e) {
}

repainted from http://www.cnblogs.com/showna/articles/534145.html
posted on 2008-07-06 17:46  Star.wang  阅读(386)  评论(0编辑  收藏  举报