2017-04-24 14 views
0

私は現在、SharedPreferencesにJSON文字列として大量のユーザーデータを格納しています。うまく動作しますが、アプリサイズやメモリの問題など、問題が発生するかどうかは疑問です。SharedPreferenceは大量のデータを格納するのに適していますか?

SharedPreferences以外のAndroidアプリに大きなチャンクを保存する方法はありますか。

+0

'SharedPreferences'は主にデータのキー値タイプを格納するために使用されます –

+0

@NJ次に大きなデータを格納するために使用されるものは? –

+1

sqliteまたはfile .. –

答えて

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; 
    } 
+0

他のアプリからこのファイルにアクセスできますか? –

+0

ファイル書き込み可能なファイル??書き込み可能なファイルについて話しているなら、いいえ、他のファイルからアクセスすることはできません。 –

+0

このファイルは、アプリまたは携帯電話のストレージ内に保存されますか? –

2

なぜあなたはちょうどSQLiteの中でそれを保存しませんDB?データはウェル形式で整理できます。

+0

これはMySQLに似ていますか? AndroidでSQLiteを使用するための良いチュートリアルを紹介してくれますか? –

+0

'sqlite android tutorial'の簡単なgoogle検索で、たくさんのことができました... – Denny

+0

このsqliteチュートリアルは、sqliteを理解するのに大いに役立ちます。希望により - https://www.youtube.com/watch?v=0BUljVIgnoE –

関連する問題