Android: Как создать файл на основе XML для контейнера данных, читать из файла / добавлять содержимое - PullRequest
0 голосов
/ 21 июня 2020

В контексте проекта я хотел бы создать контейнер данных на основе XML -файлов.

Каждая запись должна быть XML -файлом.

Для В этой задаче я создал новый каталог, который выглядит следующим образом: База данных

Чтобы заполнить базу данных XML -файлами, необходимо сделать следующее:

  1. Создайте XML -файл в папке базы данных.
  2. Добавьте содержимое в указанный XML -файл.
  3. В конце концов измените что-то из XML -файла.

Что я пробовал:

Для 1:

int exampleNumber= 1444;
FileOutputStream example = openFileOutput("app/src/main/java/DataBase/FileName.xml", MODE_PRIVATE); 

example.write(exampleNumber);
example.flush();
example.close();

Проблема: Ничего не делает.

Для 2:

private String PATH = "app/src/main/java/DataBase/FileName.xml";

public void addToXML(String Text) throws IOException {
String textToAppend = Text;
BufferedWriter writer = new BufferedWriter(new FileWriter(this.PATH, true));
writer.write(textToAppend);
writer.close();
}

Проблема: Для работы 2. должен работать 1. должен работать. 1-> 2

Для 3:

Та же проблема, что и выше

1 Ответ

0 голосов
/ 21 июня 2020

Вот простой код для демонстрации моих слов. (я тестировал его на своем Note 9)

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    
    // Keep your preference in memory
    SharedPreferences pref = getApplicationContext().getSharedPreferences("my_xml_file", 0); // 0 - for private mode
    SharedPreferences.Editor editor = pref.edit();
    
    // Change values
    editor.putBoolean("a_boolean_value", true);
    editor.putInt("an_int_value", 42);
    
    // Apply modification to the file
    editor.commit();
    editor.apply();
    
    try { // Read the file as a string and log it
        Log.i(getClass().getSimpleName(), readAsString("my_xml_file.xml"));
    } catch (IOException e) {
        e.printStackTrace();
    }
}

public String readAsString(String file) throws IOException {
    FileInputStream fileInputStream = new FileInputStream(new File(new File(getDataDir(), "shared_prefs"), file));
    // Preference files are stored in: /data/data/<your package>/shared_prefs/<name>.xml
    
    try (BufferedReader reader = new BufferedReader(new InputStreamReader(fileInputStream, StandardCharsets.UTF_8))) {
        StringBuilder builder = new StringBuilder();
        
        String line;
        while ((line = reader.readLine()) != null) {
            builder.append(line);
            builder.append('\n');
        }
        
        return builder.toString();
    }
}

Надеюсь, это вам поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...