Android SharedReference是存储大块数据的好方法吗?
我目前正在SharedReferences中以JSON字符串的形式存储大量用户数据。它工作得很好,但我想知道它是否会导致任何问题,例如大型应用程序大小或内存问题Android SharedReference是存储大块数据的好方法吗?,android,performance,sharedpreferences,Android,Performance,Sharedpreferences,我目前正在SharedReferences中以JSON字符串的形式存储大量用户数据。它工作得很好,但我想知道它是否会导致任何问题,例如大型应用程序大小或内存问题 除了SharedReference,还有什么更好的或推荐的方法来存储Android应用程序中的大块数据吗?我认为在SharedReference中保存大数据不是一个好的做法。您可以在数据库中存储大数据,也可以创建可读写文件 您可以创建可读写的文件,如 用这个方法写文件 public static void writeToFile(Str
除了SharedReference,还有什么更好的或推荐的方法来存储Android应用程序中的大块数据吗?我认为在SharedReference中保存大数据不是一个好的做法。您可以在数据库中存储大数据,也可以创建可读写文件 您可以创建可读写的文件,如 用这个方法写文件
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;
}
用这种方法读取文件
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;
}
为什么不直接将其存储在SQLite数据库中?您可以以良好的格式组织数据 SharedReferences主要用于存储类型的键值data@NJ那么什么是用来存储大数据的呢?sqlite或文件..您可以始终使用sqlite数据库或文件如果您愿意在XML中存储JSON,您可以使用SharedReferences。。。简单的json文件可能会更好,它类似于MySQL吗?你能给我介绍一些关于SQLite与Android结合使用的好教程吗?在SQLite Android教程上进行一个简单的谷歌搜索,你会得到很多……这个SQLite教程帮助我理解SQLite。希望有帮助-其他应用程序可以访问此文件吗?文件可写文件??如果您谈论的是可写文件,则不可以,您无法从其他文件访问。此文件将保存在应用程序或手机存储器中吗?