Estou procurando um post direto sobre isso e não consegui encontrar.
O Android possui interno / externo possível para gravar seus dados.
public void writeData(){
File folder = getFolder();
File file = new File(folder,"file.txt");
FileOutputStream fos = new FileOutputStream(file);
ObjectOutputStream os = new ObjectOutputStream(fos);
os.writeChars("HelloAndroid");
}
public File getFolder(){
//All this are options:
return ctx.getDir(Context.MODE_PRIVATE); //Internal
return ctx.getExternalFilesDir(); // External Private
return ctx.getExternalCacheDir();//External Private Cache
return Environment.getExternalStoragePublicDirectory(); //External Shared
return Environment.getExternalStorageDirectory(); // External Private Prior API7
}
A primeira pergunta é o que usar?
Interno – apenas o aplicativo pode acessar; se o aplicativo for desinstalado, os dados também serão excluídos.
Privado externo – Apenas seu aplicativo pode acessar, MAS o usuário também pode acessar.
Cache Privado Externo – Mesmo Privado Externo, mas se desinstalar o aplicativo, os dados também serão excluídos.
Compartilhado externo – Seu aplicativo e outros aplicativos (e o usuário) podem acessar os dados.
A segunda pergunta é: como colocar no cartão SD?
Você não pode colocar diretamente no cartão SD, este é o controle de preferência do usuário e da fábrica do telefone.
Espero ajudar alguém =)