gpt4 book ai didi

java - 如何将 Hashmap 数据(可变键/值大小)转储到 Android Studio 中特定内存位置的 .csv 文件中?

转载 作者:行者123 更新时间:2023-12-01 14:31:47 25 4
gpt4 key购买 nike

我的 hashmap 有 String 类型作为键和 ArrayList 类型作为值,示例 {"v1"=[1.1,1.2,1.3], "v2"=[2.1,2.2,2.3,2.4]} 其中 "v1""v2" 是键。有超过 40 个键(以前未知大小),每个键都有一个 ArrayList,其大小可能不统一(大小 >200)。我想在我的 Android 手机中以以下格式将此 hashmap 数据写入 .csv 文件中。

v1   v2 
1.1 2.1
1.2 2.2
1.3 2.3

到目前为止,我的 Hashmap 具有固定的键/数组大小,我使用以下代码 fragment 转储数据:

Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);

File folder = new File(Environment.getExternalStorageDirectory() + "/santobedi" + hour + "-" + minute + "-" + second);
String csv = folder.getAbsolutePath() + "/data.csv";
try {
file_writer = new FileWriter(csv, true);

if (isReady == false) {
String s = "v1, v2,\n";
file_writer.append(s);
isReady = true; // The columns heads are set
}
} catch (IOException e) {
e.printStackTrace();
}

稍后,我将在检查 boolean 值 isReady 的循环中追加(按行)值。现在,键的大小不固定,所以我不能像以前那样设置列标题。我搜索了一个可能的解决方案,this问题和我的情况差不多。但是,它与 Android 手机内部的内存位置无关,接受的答案仍然没有解决我的问题。

任何帮助,请!

最佳答案

我用以下方法解决了我的问题:

 public FileWriter file_writer;
Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
File folder = new File(Environment.getExternalStorageDirectory() + "/Santobedi" + hour + "-" + minute + "-" + second);
folder.mkdir();
String csv = folder.getAbsolutePath() + "/data.csv";
try { file_writer = new FileWriter(csv, true);
} catch (IOException e) {
e.printStackTrace();
}

稍后,使用writeToCSV方法将数据追加到file_writer中,如下:

public void writeToCsv() throws IOException {

for(Map.Entry<String , ArrayList<Float>>IwantItasColumn:myHashMap.entrySet())
{
String s = "";
for(int i =0; i<IwantItasColumn.getValue().size();i++)
{
s = s+ ","+ String.valueOf(IwantItasColumn.getValue().get(i));
}
s = AccessPointId.getKey() + "," + s + "\n";
file_writer.append(s);
}

try {
file_writer.close();
} catch (IOException e) {
e.printStackTrace();
}}

上面的代码 fragment 将数据按行附加到 data.csv 文件中(忽略 hashmap 的大小、键的大小、ArrayList 的大小) .例如:

v1 1.1 1.2 1.3
v2 2.1 2.2 2.3

Excel 中的简单行到列转换为我提供了所需的结果。

关于java - 如何将 Hashmap 数据(可变键/值大小)转储到 Android Studio 中特定内存位置的 .csv 文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62913593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com