[英]Is SharedPreference a good way to store large chunks of data?
我目前在SharedPreferences中将大量用户数据存储为JSON字符串。 它运行良好,但我想知道它是否会引起任何问题,例如较大的应用程序大小或内存问题。
除了SharedPreferences之外,还有没有其他更好或推荐的方法来在Android应用程序中存储大量数据?
为什么不将其存储在SQLite DB中? 您可以采用井井有条的格式组织数据。
我认为将大数据保存在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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.