我已经实现了解析web-site的解析器,然后我得到了一个由很多其他对象和数组等组成的大对象。我想要的是我需要将所有这些数据存储到SQLite数据库中,然后导出.db文件。
然后我想创建一个可以使用该db文件的应用程序。我怎样才能在android中实现它? 我可以将此db文件存储到资产,然后用我从资产获得的这个db文件替换应用程序的真实db文件吗?
当然我可以使用json或xml等等,但是为应用程序的最终用户解包这些数据需要花费很多时间。
所以我的想法是生成一次db-file然后存储在资产中。
答案 0 :(得分:0)
所以我最终得到了一个解决方案。这是从项目中获取sqlite db文件的方法
library(RMixpanel)
account<- mixpanelCreateAccount("abc", token = "123", secret = "456", key = "789")
mixpanelGetFunnelList(account)
这里是从资产中获取它以替换其他项目的数据库的方法,在这里您要使用此数据库而不是其他数据库。
public void backupDB(){
// getDatabasePath
final String inFileName = "/data/data/com.example.yourproject/databases/books-db";
File dbFile = new File(inFileName);
try {
FileInputStream fis = new FileInputStream(dbFile);
String outFileName = Environment.getExternalStorageDirectory()+"/database_copy.db";
// Open the empty db as the output stream
OutputStream output = new FileOutputStream(outFileName);
// Transfer bytes from the inputfile to the outputfile
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer))>0){
output.write(buffer, 0, length);
}
// Close the streams
output.flush();
output.close();
fis.close();
} catch (FileNotFoundException fileNotFoundException){
Log.e(LOG_TAG,"fileNotFoundException");
fileNotFoundException.printStackTrace();
}catch (IOException ioException){
Log.e(LOG_TAG,"ioException");
ioException.printStackTrace();
}
}