java 将多个map的值(不包括键)用逗号分隔追加写入 csv文件中
时间: 2024-03-01 21:55:35 浏览: 71
你可以使用Java 8中的Stream API来实现将多个Map的值用逗号分隔追加写入CSV文件中的功能。以下是一个示例代码:
```java
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.opencsv.CSVWriter;
public class MapsToCSV {
public static void main(String[] args) throws IOException {
List<Map<String, String>> maps = new ArrayList<>();
Map<String, String> map1 = new HashMap<>();
map1.put("key1", "value1");
map1.put("key2", "value2");
map1.put("key3", "value3");
maps.add(map1);
Map<String, String> map2 = new HashMap<>();
map2.put("key1", "value4");
map2.put("key2", "value5");
map2.put("key3", "value6");
maps.add(map2);
String filename = "output.csv";
CSVWriter writer = new CSVWriter(new FileWriter(filename, true));
maps.stream().map(Map::values).forEach(writer::writeNext);
writer.close();
}
}
```
这个示例代码首先创建了一个List对象,其中包含了两个Map对象。然后,它使用Stream API将每个Map对象的values转换为一个Stream,然后将这些Stream合并成一个大的Stream。最后,它将这个大的Stream传递给CSVWriter的writeNext方法,将多个Map的值写入CSV文件中。需要注意的是,这个代码片段是将值追加到CSV文件中,如果需要覆盖原有内容,只需将FileWriter的第二个参数设为false即可。
阅读全文