[英]Android: How to create a XML - based file for the data container, read from file/add content
在一個項目的上下文中,我想創建一個基於 XML 文件的數據容器。
每個條目都應該是一個 XML 文件。
對於這個任務,我創建了一個新目錄,如下所示: DataBase
為了用 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:
與上述相同的問題
這是一個簡單的代碼來演示我的話。 (我已經在我的 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();
}
}
希望它會幫助你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.