我的应用程序需要从链接下载数据库,这是我用来下载数据库并将其保存在 sd 卡上的代码:
public void DownloadBD() {
try {
URL url = new URL(
"http://mylink/dbHandler.axd?SqliteDbVersion=0");
HttpURLConnection urlConnection = (HttpURLConnection) url
.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setDoOutput(true);
urlConnection.connect();
File SDCardRoot = Environment.getExternalStorageDirectory();
File file = new File(SDCardRoot, "DirLaguna.db");
FileOutputStream fileOutput = new FileOutputStream(file);
InputStream inputStream = urlConnection.getInputStream();
int totalSize = urlConnection.getContentLength();
int downloadedSize = 0;
byte[] buffer = new byte[1024];
int bufferLength = 0;
while ((bufferLength = inputStream.read(buffer)) > 0) {
fileOutput.write(buffer, 0, bufferLength);
downloadedSize += bufferLength;
}
fileOutput.close();
location = file.getAbsolutePath();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
一切似乎都工作正常,但目前我想查询数据库(我正在使用原始查询)出现一个错误,指出表不存在。
之后,我尝试调试应用程序,然后我收到错误消息,指出数据库已损坏。我认为下载过程是导致数据库损坏的原因。
任何帮助将不胜感激,如果我缺少一些要分享的代码,请告诉我!
提前致谢!