csvwriter.java

来自「是高效开发JAVA的XML工具」· Java 代码 · 共 67 行

JAVA
67
字号
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.Iterator;
import java.util.List;

/**
 * 梌偊傜傟偨撪梕傪丄CSV宍幃偱弌椡偡傞僋儔僗丅
 * Class that exports given contents in CSV format. 
 */
public class CsvWriter {

    private String separator = ",";

    /**
     * 弌椡偡傞csv宍幃偺僙僷儗乕僞傪愝掕偡傞丅
     * Set CSV format separator to export.
     * @param separator 僙僷儗乕僞
     */
    public void setSeparator(String separator) {
        this.separator = separator;
    }

    private List contents;

    private String fileName;

    /**
     * @param contents CSV弌椡偡傞撪梕乮List偵奿擺偝傟偨String偺List乯
     *                 Contents to export (String List stored in List)
     * @param filePath 弌椡偡傞僼傽僀儖僷僗
     *                 File Path to export 
     */
    public CsvWriter(List contents, String filePath) {
        this.contents = contents;
        this.fileName = filePath;
    }

    /**
     * 僼傽僀儖偵弌椡偡傞丅
     * Export to File.
     * @throws IOException
     */
    public void write() throws IOException {
        File csvFile = new File(fileName);
        Writer writer = new BufferedWriter(new FileWriter(csvFile));
        writeAllLines(writer);
        writer.close();
    }

    private void writeAllLines(Writer writer) throws IOException {
        for (Iterator iter = contents.iterator(); iter.hasNext();) {
            List line = (List)iter.next();
            for (Iterator iterator = line.iterator(); iterator.hasNext();) {
                String cell = (String)iterator.next();
                writer.write("\"" + cell + "\"");
                if (iterator.hasNext()) {
                    writer.write(separator);
                }
            }
            writer.write("\n");
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?