ho usato Storage interno quale file conservare in pacchetto applicativo directory che non possono essere accessibili da dispositivo non radicata.
Qui la classe che può creare, leggere e cancellare il file
public class ReadWriteJsonFileUtils {
Activity activity;
Context context;
public ReadWriteJsonFileUtils(Context context) {
this.context = context;
}
public void createJsonFileData(String filename, String mJsonResponse) {
try {
File checkFile = new File(context.getApplicationInfo().dataDir + "/new_directory_name/");
if (!checkFile.exists()) {
checkFile.mkdir();
}
FileWriter file = new FileWriter(checkFile.getAbsolutePath() + "/" + filename);
file.write(mJsonResponse);
file.flush();
file.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public String readJsonFileData(String filename) {
try {
File f = new File(context.getApplicationInfo().dataDir + "/new_directory_name/" + filename);
if (!f.exists()) {
onNoResult();
return null;
}
FileInputStream is = new FileInputStream(f);
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
return new String(buffer);
} catch (IOException e) {
e.printStackTrace();
}
onNoResult();
return null;
}
public void deleteFile() {
File f = new File(context.getApplicationInfo().dataDir + "/new_directory_name/");
File[] files = f.listFiles();
for (File fInDir : files) {
fInDir.delete();
}
}
public void deleteFile(String fileName) {
File f = new File(context.getApplicationInfo().dataDir + "/new_directory_name/" + fileName);
if (f.exists()) {
f.delete();
}
}
}
È possibile creare, leggere e cancellare il file chiamando ReadWriteJsonFileUtils metodi di classe come segue:
Per la creazione del file :
try {
new ReadWriteJsonFileUtils(context).createJsonFileData(file_name, data);
} catch (Exception e) {
e.printStackTrace();
}
Per la lettura di file:
String jsonString = new ReadWriteJsonFileUtils(context).readJsonFileData(file_name);
per l'eliminazione di file singolo
new ReadWriteJsonFileUtils(context).deleteFile(file_name);
per l'eliminazione di tutti i file
new ReadWriteJsonFileUtils(context).deleteFile();
SharedPreferences per i dati di configurazione, e SQLite per i dati di massa. –
È impossibile rispondere senza conoscere ulteriori dettagli sul tuo caso d'uso. Anche allora, è una questione di opinione in una certa misura. – Henry
Diciamo che ho alcuni dati (la mia lista di città) Voglio che il mio negozio di applicazioni questo json per uso futuro se la connessione internet non è disponibile. – fish40