FileConnection(FC)

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

转载于:https://www.cnblogs.com/frankjobs/archive/2008/07/06/1236938.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值