JAVA導出成CSV文件

gbd8 9年前發布 | 3K 次閱讀 Java

import java.io.File;
import java.io.IOException;
import java.util.List;

import com.google.common.base.Charsets; import com.google.common.base.Joiner; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import com.google.common.io.Files; import com.google.common.primitives.Bytes;

public class FooUtilsCsvHelper {

// csv's default delemiter is ','
private final static String DEFAULT_DELIMITER = ",";
// Mark a new line
private final static String DEFAULT_END = "\r\n";
// If you do not want a UTF-8 ,just replace the byte array.
private final static byte commonCsvHead[] = { (byte) 0xEF, (byte) 0xBB,
        (byte) 0xBF };

/**
 * Write source to a csv file
 * 
 * @param source
 * @throws IOException
 */
public static void writeCsv(List<List<String>> source) throws IOException {
    // Aoid java.lang.NullPointerException
    Preconditions.checkNotNull(source);
    StringBuilder sbBuilder = new StringBuilder();
    for (List<String> list : source) {
        sbBuilder.append(Joiner.on(DEFAULT_DELIMITER).join(list)).append(
                DEFAULT_END);
    }
    Files.write(Bytes.concat(commonCsvHead,
            sbBuilder.toString().getBytes(Charsets.UTF_8.toString())),
            new File("d:\\/123.csv"));
}

/**
 * Simple read a csv file
 * 
 * @param file
 * @throws IOException
 */
public static void readCsv(File file) throws IOException {
    System.out.println(Files.readFirstLine(file, Charsets.UTF_8));
}

// Run a small test yourself.
public static void main(String[] args) throws IOException {
    List<List<String>> source = Lists.newArrayList();
    List<String> tmpL = Lists.newArrayList();
    tmpL.add("測試titile1");
    tmpL.add("測試titile2");
    source.add(tmpL);
    writeCsv(source);
    readCsv(new File("d:\\/123.csv"));
}

}</pre>

 本文由用戶 gbd8 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!