我正在为黑莓开发应用程序,它将数据库作为后端。数据库有一些数据,所以我导入数据库从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()) ;
}
}
答案 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());
}
}
够;