Есть такая задача: с сервера получить файл базы данных(в формате .db) и перезаписать старый файл на новый.
Пробую так:
@Override
public void onSuccess(int statusCode, cz.msebera.android.httpclient.Header[] headers,
File file) {
if (statusCode != 200) {
Toast.makeText(SettingsActivity.this, getResources().getText(R.string.error),
Toast.LENGTH_SHORT).show();
return;
}
Log.v(TAG, "response - success - " + file);
try {
FileInputStream input = new FileInputStream(file);
String outputFile = String.valueOf(getApplicationContext().getDatabasePath("name_db"));
OutputStream output = new FileOutputStream(outputFile);
byte[] buffer = new byte[input.available()];
int i;
while ((i = input.read(buffer)) > 0) {
output.write(buffer, 0, i);
}
output.flush();
output.close();
input.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
pd.cancel();
}
Но это не работает. Как лучше это реализовать?
На всякий случай код на отправку файла бд на сервер:
RequestParams params_ = new RequestParams();
AsyncHttpClient client = new AsyncHttpClient(true, 80, 443);
Context context = getApplicationContext();
File dbFile = new File(String.valueOf(context.getDatabasePath("name_db")));
try {
params_.put("db", dbFile);
} catch(FileNotFoundException e) {
Log.v(TAG, "error - file not found");
}
client.post("example.com", params_, new JsonHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, cz.msebera.android.httpclient.Header[] headers, JSONObject json) {
Log.v(TAG, "response -- " + json);
try {
if (0 == json.getInt("status")) {
Toast.makeText(SettingsActivity.this, getResources().getText(R.string.successfully),
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(SettingsActivity.this, getResources().getText(R.string.error),
Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
pd.cancel();
}
});
P.S. Попробовал вот так:
(new DB(getApplicationContext())).close();
File aFile = file;
String path = String.valueOf(getApplicationContext().getDatabasePath("targets_db")) + ".db";
if (aFile.renameTo(new File(path))) {
Log.v(TAG, "File is moved successful!");
}
В логах пишет, что файл был перемещен, но однако файл бд не изменился на нужный(бекапешный).
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как лучше всего организовать проверку на ввод отрицательного числа (они должны отсеиваться), чтоб это сильно не загромождало код, так как...
Есть ли в java универсальный способ выйти из многоуровневого цикла? Или же необходимо составлять грамотное условие для каждого уровня? Например: