Как прочитать сложный hashmap TXT наиболее эффективным способом в Java / Android - PullRequest
0 голосов
/ 30 августа 2018

Вот мой код для записи хэш-карты в текстовый файл.

//In a previous method:
private Context contexta = MainActivity.this;
writeToFile(my_hashmap.toString(), contexta);

Тогда метод writeToFile:

private void writeToFile(String data,Context context) {
    try {
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(context.openFileOutput("config.txt", Context.MODE_PRIVATE));
        outputStreamWriter.write(data);
        outputStreamWriter.close();
    }
    catch (IOException e) {
        Log.e("Exception", "File write failed: " + e.toString());
    }

Моя хэш-карта my_hashmap построена как hashmap(String, hashmap2(String, hashmap3(String, Integer)))

Итак, мой текстовый файл содержит:

A_string1={{B_string1={C_string1=0, C_string2=0, C_string3=0}, B_string2={...}...}, A_string2={...}, ...

Какой самый эффективный способ снова прочитать его из файла?

Важное замечание: Я хочу, чтобы оно было доступно для чтения в .txt! Так что, насколько я понял, Serialization не будет работать для меня, так как создает нечитаемые данные. Я не хочу менять метод writeToFile, просто умный способ кодирования readFromFile.

1 Ответ

0 голосов
/ 30 августа 2018

Вы можете использовать ObjectOutputStream (новый FileOutputStream (файл)); написать файл
и


новый ObjectInputStream (новый FileInputStream (файл)) для чтения файла

Запись в файл

  File file = new File("filePath");
  FileOutputStream f = new FileOutputStream(file);
  ObjectOutputStream s = new ObjectOutputStream(f);
  s.writeObject(fileObj);
  s.close();

Чтение из файла

    File file = new File("filePath");
FileInputStream f = new FileInputStream(file);
ObjectInputStream s = new ObjectInputStream(f);
HashMap<String, Object> fileObj2 = (HashMap<String, Object>) s.readObject();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...