如何在android中通过HasMap以csv格式文件写入数据?
下面是代码,如果我的类在HashMap中从firebase获取数据,那么我已经将该数据存储到arraylist中,并将数组列表的数据转换为逗号分隔的字符串,但它没有像我预期的那样工作,下面是我的firebase数据的屏幕截图。 ..如何在android中通过HasMap以csv格式文件写入数据?,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,下面是代码,如果我的类在HashMap中从firebase获取数据,那么我已经将该数据存储到arraylist中,并将数组列表的数据转换为逗号分隔的字符串,但它没有像我预期的那样工作,下面是我的firebase数据的屏幕截图。 .. SharedReferences SharedReferences; @凌驾 创建时受保护的void(@Nullable Bundle savedInstanceState){ super.onCreate(savedInstanceState); setCont
SharedReferences SharedReferences;
@凌驾
创建时受保护的void(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_报告);
SharedReferences=GetSharedReferences(“Pref”,Context.MODE\u PRIVATE);
DatabaseReference DatabaseReference=FirebaseDatabase.getInstance().getReference().child(“用户”);
databaseReference.addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
ArrayList myArrList=新建ArrayList();
Map userData=(Map)dataSnapshot.getValue();
添加(用户数据);
Log.d(“data”,userData.toString());
csv(myArrList);
Log.d(“99”,SharedReferences.getString(“GeneralString”),和;
字符串路径=
Environment.getExternalStorageDirectory()+File.separator+“Mccia”;
//创建文件夹。
文件夹=新文件(路径);
folder.mkdirs();
//创建文件。
文件=新文件(文件夹“config.csv”);
试一试{
createNewFile();
FileOutputStream fOut=新的FileOutputStream(文件);
OutputStreamWriter myOutWriter=新的OutputStreamWriter(fOut);
追加(SharedReferences.getString(“GeneralString”,下称“));
myOutWriter.close();
fOut.flush();
fOut.close();
}捕获(IOE异常){
Log.e(“异常”,“文件写入失败:”+e.toString());
}
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
}
下面是我将列表数据转换为字符串的方法
private ArrayList<Map<String, CompanyData>> csv(ArrayList<Map<String, CompanyData>> mapArrayList) {
ArrayList<Map<String, CompanyData>> g = mapArrayList;
SharedPreferences.Editor editor = sharedPreferences.edit();
StringBuilder st = new StringBuilder();
for (Map<String, CompanyData> item : g) {
st.append(item);
}
if (!g.isEmpty()) {
editor.putString("generalStrings", st.toString().substring(0, st.toString().length() - 1));
editor.apply();
} else {
editor.putString("generalStrings", " ");
editor.apply();
}
return g;
}
私有ArrayList csv(ArrayList mapArrayList){
ArrayList g=mapArrayList;
SharedReferences.Editor=SharedReferences.edit();
StringBuilder st=新的StringBuilder();
用于(地图项目:g){
圣彼得堡(项目);
}
如果(!g.isEmpty()){
putString(“GeneralString”,st.toString().substring(0,st.toString().length()-1));
editor.apply();
}否则{
putString(“generalStrings”,”);
editor.apply();
}
返回g;
}
请帮帮我,或者告诉我怎么做。我有openCsv和superCSV库,但没有帮助
private ArrayList<Map<String, CompanyData>> csv(ArrayList<Map<String, CompanyData>> mapArrayList) {
ArrayList<Map<String, CompanyData>> g = mapArrayList;
SharedPreferences.Editor editor = sharedPreferences.edit();
StringBuilder st = new StringBuilder();
for (Map<String, CompanyData> item : g) {
st.append(item);
}
if (!g.isEmpty()) {
editor.putString("generalStrings", st.toString().substring(0, st.toString().length() - 1));
editor.apply();
} else {
editor.putString("generalStrings", " ");
editor.apply();
}
return g;
}