Как скопировать базу данных на устройство в Blackberry - PullRequest
0 голосов
/ 16 декабря 2011

Я занимаюсь разработкой приложения для 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 Ответ

1 голос
/ 16 декабря 2011

Попробуйте это: Прежде чем пытаться это сделать: вы должны проверить, есть ли SDCARD или нет, и

System.getProperty ( "fileconn.dir.memorycard")

Дает прямой путь к:

Файл: /// SDCard /

и затем ваше имя файла;

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());
    }

}

Достаточно;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...