簡體   English   中英

如何在 Android App 中將 ArrayList 寫入文本文件

[英]How to write an ArrayList into a text file in Android App

因此,我有一個 ArrayList,其中包含應用程序所需的一些數據,並且從名為 MyData.txt 的文本文件加載數據並將其存儲在 ArrayList 中沒有任何問題。 但問題是,在用戶對存儲在加載的 ArrayList 中的數據進行一些更改后,我希望使用新的 ArrayList 更新存儲到 MyData.txt 中的數據。 我為此編寫了一些代碼,但它似乎不起作用,並且在我按下保存按鈕后我的 txt 文件沒有得到更新,它只是跳出了應用程序。

 public void SaveData(List<Four> list) throws IOException {
    FileOutputStream file = openFileOutput("MyData.txt", MODE_PRIVATE);
    OutputStreamWriter outputFile = new OutputStreamWriter(file);
    for(int i=0 ; i<list.size() ; i++){
        outputFile.write(list.get(i).first+";"+list.get(i).second+";"+list.get(i).second+";"+list.get(i).fourth+"\n");
    }
    outputFile.flush();
    outputFile.close();
}

我有一個數據類型為四的 ArrayList(四是 class,其中包括“字符串(顯示為第一個)、字符串(顯示為第二個、int(顯示為第三個)、int(顯示為第四個))代碼的 Z78E6221F6393D1396668應該存儲在一個文本文件中,例如,如果我的列表只有一個索引,如“John Brown 1938494 0”,我的文本文件應該看起來像“John;Brown;1938494;0”。

如果您需要了解有關代碼的任何其他信息,請告訴我。 謝謝你的時間。

您可以使用谷歌 gson。

    class Four {
    String first,second;
    int third,fourth;
    public Four()
    {

    }
}
 //save_array(your_context,"MyData.txt",your_array)
void save_array(Context contxt,String file_name,ArrayList<Four> testes)
{
    Gson gson = new Gson();
    String json = gson.toJson(testes);
    String root = contxt.getExternalFilesDir(null).getAbsolutePath() + "/arrays";


    File file = new File(root);
    file.mkdirs();
    try {
        File out_file = new File(file, file_name);
        if(out_file.exists()){
            out_file.delete();
        }
        FileWriter writer = new FileWriter(out_file,true);
        writer.append(json);
        writer.flush();
        writer.close();
    }catch (Exception ex)
    {

    }
}
ArrayList<Four> saved_array(Context contxt, String file_name) throws IOException {
    String path = contxt.getExternalFilesDir(null).getAbsolutePath() + "/arrays/"+file_name;


    Gson gson = new Gson();
    BufferedReader br = new BufferedReader(new FileReader(path));
    return gson.fromJson(br, new TypeToken<List<Four>>(){}.getType());


} 

你可以調用記住來請求存儲權限

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM