2013-10-28 5 views
0

Может кто-то объяснить, что происходит здесь не так, я использую следующую функциюкак записать данные JSON в файл андроида

public void WriteSettings(Context context, String data){ 
    FileOutputStream fOut = null; 
    OutputStreamWriter osw = null; 

    try{ 
    fOut = context.openFileOutput("schemas.json",Context.MODE_APPEND);  
    osw = new OutputStreamWriter(fOut); 
    osw.write(data); 
    osw.flush(); 
    Toast.makeText(context, data+"Data",Toast.LENGTH_SHORT).show(); 
    Toast.makeText(context, "Settings saved",Toast.LENGTH_SHORT).show(); 
    } 
    catch (Exception e) {  
    e.printStackTrace(); 
    Toast.makeText(context, "Settings not saved",Toast.LENGTH_SHORT).show(); 
    } 
    finally { 
     try { 
       osw.close(); 
       fOut.close(); 
       } catch (IOException e) { 
       e.printStackTrace(); 
       } 
    } 
} 

И колл с когда-то мой запрос HTTP завершен

JSONObject json_res = currentDFD.getJSONObject ("результат"); WriteSettings (getBaseContext(), json_res.toString());

В результате предупреждаются в тосте, однако, не внесенный в файл файл находится в папке активов спасибо заранее

+0

Просьба сообщить сообщение об ошибке, которое вы получаете. – Vigbyor

+0

Я не получаю сообщение об ошибке, данные отображаются в тосте, а также сохранены и другие сохраненные настройки тоста, но мой файл schemas.json по-прежнему пуст :( – androidBeckhamania

+0

Прежде, убедитесь, что вы можете хранить любые данные, например: 'WriteSettings (getBaseContext(), "blablabla"); ' –

ответ

2

AFAIK Вы не можете. Папка активов доступна только для чтения во время выполнения.

Выберите другое место для сохранения ваших данных, см. Data Storage in Android для получения дополнительной информации.

Папка активов похожа на папки res, src, gen и т. Д. Все они полезны для предоставления разных файлов в качестве входных данных для создания системы для создания файла APK для вашего приложения.

Все эти данные доступны только для чтения, пока приложение работает. Во время выполнения вы можете записывать только на SD-карту.

Смежные вопросы