如何在Blackberry中将数据库复制到设备中

时间:2011-12-16 05:58:48

标签: blackberry

我正在为黑莓开发应用程序,它将数据库作为后端。数据库有一些数据,所以我导入数据库从res到sdcard它在模拟器中完全正常工作。 当我安装my app into device然后它无法正常工作时我无法理解的问题。以下是我的代码..

致电方法

DatabseCopy db=new DatabseCopy();
         db.copyFile("/nm.db","file:///SDCard/Databases/nm.db");    

方式

 public  void copyFile(String srFile, String dtFile)
  {
        try
        {                   
                FileConnection fconn;                    
                fconn = (FileConnection) Connector.open(dtFile,Connector.READ_WRITE);

                if(!fconn.exists()) // if  file does not exists , create a new one
                {
                        fconn.create();
                }

                InputStream is = (InputStream)this.getClass().getResourceAsStream(srFile);
                OutputStream os =fconn.openOutputStream();
                byte[] buf = new byte[1024];
                int len;
                while ((len = is.read(buf)) > 0)
                {
                os.write(buf, 0, len);
                }
           is.close();
           os.close();
        }
        catch(IOException e)
        {
           System.out.println("Exception"+e.getMessage())         ;
        }
} 

1 个答案:

答案 0 :(得分:1)

试试这个: 在尝试此操作之前:您必须检查 SDCARD 是否存在和

  

System.getProperty( “fileconn.dir.memorycard”)

直接提供路径:

  

文件:/// SD卡/

然后是你的文件名;

private void copyFromResToSDCard() 
{       
    try 
    {
        InputStream is=(InputStream)getClass().getResourceAsStream("/ManualRecords.db");
        FileConnection fileconn=(FileConnection)Connector.open(System.getProperty("fileconn.dir.memorycard")+"ManualRecords.db");//Here set your Path with new fileName.db;
        if(fileconn.exists())
        {
            fileconn.delete();              
        }
        fileconn.create();
        byte data[]=new byte[is.available()];
        data=IOUtilities.streamToBytes(is);
        OutputStream os=fileconn.openOutputStream();
        os.write(data);
        fileconn.close();
        is.close();
        os.close();
    } 
    catch (Exception e) 
    {
        System.out.println("=============="+e.getMessage());
    }

}

够;