Android SharedReference是存储大块数据的好方法吗?

Android SharedReference是存储大块数据的好方法吗?,android,performance,sharedpreferences,Android,Performance,Sharedpreferences,我目前正在SharedReferences中以JSON字符串的形式存储大量用户数据。它工作得很好,但我想知道它是否会导致任何问题,例如大型应用程序大小或内存问题 除了SharedReference,还有什么更好的或推荐的方法来存储Android应用程序中的大块数据吗?我认为在SharedReference中保存大数据不是一个好的做法。您可以在数据库中存储大数据,也可以创建可读写文件 您可以创建可读写的文件,如 用这个方法写文件 public static void writeToFile(Str

我目前正在SharedReferences中以JSON字符串的形式存储大量用户数据。它工作得很好,但我想知道它是否会导致任何问题,例如大型应用程序大小或内存问题


除了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。希望有帮助-其他应用程序可以访问此文件吗?文件可写文件??如果您谈论的是可写文件,则不可以,您无法从其他文件访问。此文件将保存在应用程序或手机存储器中吗?