我目前在SharedPreferences中将大量用户数据存储为JSON字符串。它运行良好,但我想知道它是否会导致任何问题,例如大的应用程序大小或内存问题。
除了SharedPreferences之外,还有更好或推荐的方法在Android应用中存储大块数据吗?
答案 0 :(得分:1)
为什么不将它存储在SQLite DB中?您可以以井格式组织数据。
答案 1 :(得分:0)
我认为在SharedPreference
中保存大数据并不是一种好习惯。您可以将大数据存储在任一数据库中,也可以创建可读或可写文件。
你可以创造可读和可写文件,如
通过此方法编写文件
public static void writeToFile(String data,Context context, String fileName) {
try {
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(context.openFileOutput(fileName+".txt", Context.MODE_PRIVATE));
outputStreamWriter.write(data);
outputStreamWriter.close();
}
catch (IOException e) {
Log.e("Exception", "File write failed: " + e.toString());
}
}
通过此方法读取文件
public static String readFromFile(Context context, String fileName) {
String ret = "";
try {
InputStream inputStream = context.openFileInput(fileName + ".txt");
if ( inputStream != null ) {
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String receiveString = "";
StringBuilder stringBuilder = new StringBuilder();
while ( (receiveString = bufferedReader.readLine()) != null ) {
stringBuilder.append(receiveString);
}
inputStream.close();
ret = stringBuilder.toString();
}
}
catch (FileNotFoundException e) {
Log.e("login activity", "File not found: " + e.toString());
} catch (IOException e) {
Log.e("login activity", "Can not read file: " + e.toString());
}
return ret;
}