Użyłem pamięci wewnętrznej który plik przechowuje w pakietu Application katalogów, które nie mogą być dostępne nie zakorzenione urządzenia.
Tutaj klasa, która może tworzyć, czytać i usunąć plik
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();
}
}
}
Można tworzyć, czytać i usunąć plik wywołując ReadWriteJsonFileUtils metod klasy następująco:
Do tworzenia pliku :
try {
new ReadWriteJsonFileUtils(context).createJsonFileData(file_name, data);
} catch (Exception e) {
e.printStackTrace();
}
Do czytania pliku:
String jsonString = new ReadWriteJsonFileUtils(context).readJsonFileData(file_name);
do kasowania pojedynczego pliku
new ReadWriteJsonFileUtils(context).deleteFile(file_name);
na usunięcie wszystkich plików
new ReadWriteJsonFileUtils(context).deleteFile();
SharedPreferences dla danych konfiguracyjnych oraz SQLite dla danych masowych. –
Nie można udzielić takiej odpowiedzi, nie znając szczegółów dotyczących przypadku użycia. Nawet wtedy jest to w pewnym stopniu kwestią opinii. – Henry
Załóżmy, że mam pewne dane (tj. Listę miast) Chcę, aby moja aplikacja przechowywała ten json do późniejszego wykorzystania, jeśli połączenie z Internetem nie jest dostępne. – fish40