Как сохранить данные в плоский файл в Android? - PullRequest
0 голосов
/ 15 июля 2010

Я хочу сохранить несколько значений в форме рекордов. Но поскольку я не собираюсь хранить более 5 значений, использование SQLite не представляется целесообразным. Другим вариантом, который я рассматривал, был плоский файл, но я не уверен, как это сделать ...

Ответы [ 2 ]

3 голосов
/ 15 июля 2010

См. здесь для ваших опций хранения данных. Я полагаю, что в вашем случае проще всего будет использовать SharedPreferences.

Вы также можете использовать Внутреннее хранилище для сохранения данных в файл, который является частным для вашего приложения. Я бы не рекомендовал использовать Внешнее хранилище для хранения рекордов.

2 голосов
/ 15 июля 2010

Если это массив, вы можете использовать это:

    public void saveArray(String filename, String[] output_field) {
         try {
            FileOutputStream fos = new FileOutputStream(filename);
            GZIPOutputStream gzos = new GZIPOutputStream(fos);
            ObjectOutputStream out = new ObjectOutputStream(gzos);
            out.writeObject(output_field);
            out.flush();
            out.close();
         }
         catch (IOException e) {
             e.getStackTrace();
         }
      }

      @SuppressWarnings("unchecked")
    public String[] loadArray(String filename) {
          try {
            FileInputStream fis = new FileInputStream(filename);
            GZIPInputStream gzis = new GZIPInputStream(fis);
            ObjectInputStream in = new ObjectInputStream(gzis);
            String[] read_field = (String[])in.readObject();
            in.close();
            return read_field;
          }
          catch (Exception e) {
              e.getStackTrace();
          }
          return null;
      }

Вы просто называете это так:

Save Array: saveArray("/sdcard/.mydata/data.dat", MyArray);
Load Array: String[] MyArray = loadArray("/sdcard/.mydata/data.dat");

Вы можете увидеть пример на http://androidworkz.com/2010/07/06/source-code-imageview-flipper-sd-card-scanner/

...