0

このデータでcsvファイルを作成しようとしていますが、キーと値のペアとして保存され、値が適切に表示されます。キーをフィールドのヘッダーとして表示する方法 (値)

 for (Map<String, String> map : test) {          
        Iterator iterator = map.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<String,String> mapEntry = (Map.Entry<String,String>) iterator.next();
           //System.out.println("key: " + mapEntry.getKey() + ", value:" + mapEntry.getValue());

            writer.append(mapEntry.getValue());
            writer.append(",");
            iterator.remove();
        }
        writer.append("\n");
        }
        writer.flush();
        writer.close();
    }
4

2 に答える 2

0

このようなものをお探しですか?

package com.stackoverflow.csv;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class CreateFile {

    public static final String LINE_BREAK = "\n";
    public static final String QUOTE = "\"";
    private final StringBuilder sb;
    public CreateFile(Map<String, String> table) {
        sb = new StringBuilder();
        Iterator<String> keys = table.keySet().iterator();

        while (keys.hasNext()){
            sb.append(QUOTE + keys.next() + QUOTE);
            if (keys.hasNext())
                sb.append(", ");
        }
        sb.append(LINE_BREAK);
        Iterator<String> entries = table.values().iterator();
        while (entries.hasNext()) {
            sb.append(QUOTE + entries.next() + QUOTE);
            if (entries.hasNext())
                sb.append(", ");
        }
    }
    public String getCSV() {
        return sb.toString();
    }

    public static void main(String[] args) {
        HashMap<String,String> map = new HashMap<>();
        map.put("KEY1", "VALUE1");
        map.put("KEY2", "VALUE2");
        map.put("KEY3", "VALUE3");
        map.put("KEY4", "VALUE4");
        map.put("KEY5", "VALUE5");
        map.put("KEY6", "VALUE6");
        map.put("KEY7", "VALUE7");
        map.put("KEY8", "VALUE8");
        map.put("KEY9", "VALUE9");
        map.put("KEY10", "VALUE10");
        CreateFile app = new CreateFile(map);
        System.out.println(app.getCSV());
    }
}
于 2013-10-17T09:11:24.357 に答える